diff --git a/.changeset/fix-widget-resize-after-edit.md b/.changeset/fix-widget-resize-after-edit.md new file mode 100644 index 0000000000..fd88f12133 --- /dev/null +++ b/.changeset/fix-widget-resize-after-edit.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': patch +--- + +Fixed widgets not being draggable and resizable after saved edits. Previously, entering edit mode didn't restore `isDraggable` and `isResizable`. diff --git a/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx b/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx index 065caff3f4..ce97e65e4e 100644 --- a/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx +++ b/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx @@ -302,15 +302,18 @@ export const CustomHomepageGrid = (props: CustomHomepageGridProps) => { const changeEditMode = (mode: boolean) => { setEditMode(mode); - if (!mode) { - const newWidgets = widgets.map(w => { - const resizable = w.resizable === false ? false : mode; - const movable = w.movable === false ? false : mode; - return { - ...w, - layout: { ...w.layout, isDraggable: movable, isResizable: resizable }, - }; - }); + const newWidgets = widgets.map(w => { + const resizable = w.resizable === false ? false : mode; + const movable = w.movable === false ? false : mode; + return { + ...w, + layout: { ...w.layout, isDraggable: movable, isResizable: resizable }, + }; + }); + + if (mode) { + setWidgets(newWidgets); + } else { storeWidgets(newWidgets); } };