Merge pull request #10742 from ToolJet/fix/stale-reference-main

fix : ComponentID mapping to deleted component due to stale references in hashmap / suggestions showing deleted components in list
This commit is contained in:
Johnson Cherian 2024-09-11 12:44:01 +05:30 committed by GitHub
commit 433eff9896
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 30 additions and 4 deletions

View file

@ -1 +1 @@
2.66.1
2.66.2

View file

@ -1 +1 @@
2.66.1
2.66.2

View file

@ -1581,7 +1581,12 @@ const EditorComponent = (props) => {
if (!isVersionReleased && selectedComponents?.length > 1) {
let newDefinition = JSON.parse(JSON.stringify(appDefinition));
removeSelectedComponent(currentPageId, newDefinition, selectedComponents, appDefinitionChanged);
const toDeleteComponents = removeSelectedComponent(
currentPageId,
newDefinition,
selectedComponents,
appDefinitionChanged
);
const platform = navigator?.userAgentData?.platform || navigator?.platform || 'unknown';
if (platform.toLowerCase().indexOf('mac') > -1) {
toast('Selected components deleted! (⌘ + Z to undo)', {
@ -1592,6 +1597,26 @@ const EditorComponent = (props) => {
icon: '🗑️',
});
}
const allAppHints = useResolveStore.getState().suggestions.appHints ?? [];
const allHintsAssociatedWithQuery = [];
if (allAppHints.length > 0) {
toDeleteComponents.forEach((id) => {
const componentName = appDefinition.pages[currentPageId].components[id]?.component?.name;
if (componentName) {
allAppHints.forEach((suggestion) => {
if (suggestion?.hint.includes(componentName)) {
allHintsAssociatedWithQuery.push(suggestion.hint);
}
});
}
});
}
useResolveStore.getState().actions.removeEntitiesFromMap(toDeleteComponents);
useResolveStore.getState().actions.removeAppSuggestions(allHintsAssociatedWithQuery);
updateEditorState({ selectedComponents: [] });
} else if (isVersionReleased) {
useAppVersionStore.getState().actions.enableReleasedVersionPopupState();

View file

@ -2098,6 +2098,7 @@ export const removeSelectedComponent = (pageId, newDefinition, selectedComponent
useResolveStore.getState().actions.removeAppSuggestions(allHintsAssociatedWithQuery);
updateAppDefinition(newDefinition, { componentDefinitionChanged: true, componentDeleted: true, componentCut: true });
return toDeleteComponents;
};
const getSelectedText = () => {

View file

@ -1 +1 @@
2.66.1
2.66.2