Merge branch 'bug/cancel-removes-widgets' into 'main'

Fix state not being saved before entering edit or delete modes

See merge request vkuchenik/website-framework!61
This commit is contained in:
Dan Hansen
2025-08-12 21:03:54 +00:00
2 changed files with 7 additions and 4 deletions
+4 -2
View File
@@ -72,7 +72,8 @@ export default function Home({...props}) {
const onEditWidgets = () => { const onEditWidgets = () => {
console.log("widgets are now editable"); console.log("widgets are now editable");
setOriginalLayout(layout); // Backup layout before editing beginEditIfNeeded(); // Save state before anything else
// setOriginalLayout(layout); // Backup layout before editing
// Set all widgets to editable, static: false // Set all widgets to editable, static: false
setLayout(prevLayout => setLayout(prevLayout =>
prevLayout.map(item => ({ prevLayout.map(item => ({
@@ -100,7 +101,8 @@ export default function Home({...props}) {
const onDeleteWidgets = () => { const onDeleteWidgets = () => {
console.log("Start deleting widgets..."); console.log("Start deleting widgets...");
setOriginalLayout(layout); beginEditIfNeeded(); // Save state before anything else
// setOriginalLayout(layout);
setIsEditable(true); setIsEditable(true);
setIsDelete(true); setIsDelete(true);
} }
+3 -2
View File
@@ -30,13 +30,14 @@ export default function Dashboard() {
const onCancel = () => { const onCancel = () => {
console.log("canceling changes..."); console.log("canceling changes...");
console.log(originalWidgets);
if (originalLayout.length) { if (originalLayout.length) {
setLayout(originalLayout.map(item => ({ setLayout(originalLayout.map(item => ({
...item, ...item,
static: true static: true
}))); })));
}; };
setWidgetArray(originalWidgets.length ? originalWidgets : []); setWidgetArray(originalWidgets);
setIsEditable(false); setIsEditable(false);
setIsDelete(false); setIsDelete(false);
setOriginalLayout([]); setOriginalLayout([]);
@@ -64,7 +65,7 @@ export default function Dashboard() {
// Prop Forwarding // Prop Forwarding
const canvasProps = { view, layout, setLayout, setOriginalLayout, onLayoutChange, onChangeView: handleViewChange, const canvasProps = { view, layout, setLayout, setOriginalLayout, onLayoutChange, onChangeView: handleViewChange,
onCancel, isEditable, setIsEditable, isDelete, setIsDelete, widgetArray, setWidgetArray, setOriginalWidgets, beginEditIfNeeded onCancel, isEditable, setIsEditable, isDelete, setIsDelete, widgetArray, setWidgetArray, originalWidgets, setOriginalWidgets, beginEditIfNeeded
}; };
const sidebarProps = { view, onChangeView: handleViewChange, darkMode, setDarkMode }; const sidebarProps = { view, onChangeView: handleViewChange, darkMode, setDarkMode };
const headerProps = { onChangeView: handleViewChange }; const headerProps = { onChangeView: handleViewChange };