From 877b9a7fd45c9738f6a402c1f826deae0be501a7 Mon Sep 17 00:00:00 2001 From: Michael Shanks Date: Fri, 7 Aug 2020 14:17:57 +0100 Subject: [PATCH] new comonent name - when on master unique across all screens --- .../src/builderStore/getNewComponentName.js | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/builder/src/builderStore/getNewComponentName.js b/packages/builder/src/builderStore/getNewComponentName.js index 051df0f2ae..b3ddc4e953 100644 --- a/packages/builder/src/builderStore/getNewComponentName.js +++ b/packages/builder/src/builderStore/getNewComponentName.js @@ -2,25 +2,30 @@ import { walkProps } from "./storeUtils" import { get_capitalised_name } from "../helpers" export default function(component, state) { - const screen = - state.currentFrontEndType === "screen" ? state.currentPreviewItem : null - const page = state.pages[state.currentPageName] const capitalised = get_capitalised_name(component) const matchingComponents = [] - if (screen) - walkProps(screen.props, c => { + const findMatches = props => { + walkProps(props, c => { if ((c._instanceName || "").startsWith(capitalised)) { matchingComponents.push(c._instanceName) } }) + } - walkProps(page.props, c => { - if ((c._instanceName || "").startsWith(capitalised)) { - matchingComponents.push(c._instanceName) + // check page first + findMatches(state.pages[state.currentPageName].props) + + // if viewing screen, check current screen for duplicate + if (state.currentFrontEndType === "screen") { + findMatches(state.currentPreviewItem.props) + } else { + // viewing master page - need to find against all screens + for (let screen of state.screens) { + findMatches(screen.props) } - }) + } let index = 1 let name