diff --git a/frontend/src/Editor/Editor.jsx b/frontend/src/Editor/Editor.jsx index 11b695e5af..73b576759e 100644 --- a/frontend/src/Editor/Editor.jsx +++ b/frontend/src/Editor/Editor.jsx @@ -1342,6 +1342,7 @@ const EditorComponent = (props) => { }); delete newDefinition.pages[currentPageId].components[componentId]; + const platform = navigator?.userAgentData?.platform || navigator?.platform || 'unknown'; if (platform.toLowerCase().indexOf('mac') > -1) { toast('Component deleted! (⌘ + Z to undo)', { @@ -1358,6 +1359,14 @@ const EditorComponent = (props) => { return appDefinition.pages[currentPageId].components[id].component.name; }); + const currentComponents = newDefinition.pages[currentPageId].components; + + const newComponentDefinition = useResolveStore + .getState() + .actions.findAndReplaceReferences(currentComponents, deletedComponentNames); + + newDefinition.pages[currentPageId].components = newComponentDefinition; + appDefinitionChanged(newDefinition, { componentDefinitionChanged: true, componentDeleted: true, diff --git a/frontend/src/_stores/appDataStore.js b/frontend/src/_stores/appDataStore.js index f8227587c1..a05d8b02d2 100644 --- a/frontend/src/_stores/appDataStore.js +++ b/frontend/src/_stores/appDataStore.js @@ -56,7 +56,7 @@ export const useAppDataStore = create( let updateDiff = appDefinitionDiff.updateDiff; if (appDefinitionDiff.operation === 'update') { - updateDiff = useResolveStore.getState().actions.findReferences(updateDiff); + updateDiff = useResolveStore.getState().actions.findAndReplaceReferences(updateDiff); } appVersionService @@ -91,7 +91,7 @@ export const useAppDataStore = create( const appId = get().appId; const versionId = get().currentVersionId; - const entityIdMappingData = useResolveStore.getState().actions.findReferences(events); + const entityIdMappingData = useResolveStore.getState().actions.findAndReplaceReferences(events); const response = await appVersionService.saveAppVersionEventHandlers( appId, diff --git a/frontend/src/_stores/dataQueriesStore.js b/frontend/src/_stores/dataQueriesStore.js index cc4f602b78..a402e54d8a 100644 --- a/frontend/src/_stores/dataQueriesStore.js +++ b/frontend/src/_stores/dataQueriesStore.js @@ -464,7 +464,7 @@ export const useDataQueriesStore = create( set({ queuedActions: { ...get().queuedActions, saveData: newValues } }); return; } - const entityIdMappedOptions = useResolveStore.getState().actions.findReferences(newValues?.options); + const entityIdMappedOptions = useResolveStore.getState().actions.findAndReplaceReferences(newValues?.options); useAppDataStore.getState().actions.setIsSaving(true); set({ isUpdatingQueryInProcess: true }); diff --git a/frontend/src/_stores/resolverStore.js b/frontend/src/_stores/resolverStore.js index 6a0076c210..865ac28c54 100644 --- a/frontend/src/_stores/resolverStore.js +++ b/frontend/src/_stores/resolverStore.js @@ -195,8 +195,9 @@ export const useResolveStore = create( } }, - findReferences: (obj) => { - const entityNameReferences = findAllEntityReferences(obj, []); + findAndReplaceReferences: (obj, targetEntityNames = []) => { + const entityNameReferences = + targetEntityNames.length === 0 ? findAllEntityReferences(obj, []) : targetEntityNames; if (entityNameReferences.length === 0) return obj;