This is an automated email from the ASF dual-hosted git repository. rusackas pushed a commit to branch live-edits in repository https://gitbox.apache.org/repos/asf/superset.git
commit 215b305e1c739f53ee5501903385659868f94b6a Author: Evan Rusackas <[email protected]> AuthorDate: Thu Jan 8 16:30:49 2026 -0800 fix(dashboard): fix persistence for chart title and description toggle - Fix EditableTitle useEffect dependency array (first click wasn't working) - Add hasUnsavedChanges: true to TOGGLE_EXPAND_SLICE reducer (description toggle state wasn't being persisted) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> --- .../superset-ui-core/src/components/EditableTitle/index.tsx | 2 +- superset-frontend/src/dashboard/reducers/dashboardState.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx index 82ce1ccf7eb..c82bcef0d15 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx @@ -127,7 +127,7 @@ export function EditableTitle({ if (editing && !isEditing) { setIsEditing(true); } - }, [editing]); + }, [editing, isEditing]); useEffect(() => { if (isEditing && contentRef.current) { diff --git a/superset-frontend/src/dashboard/reducers/dashboardState.js b/superset-frontend/src/dashboard/reducers/dashboardState.js index 70b5b6ab19d..ae2cd3b3c91 100644 --- a/superset-frontend/src/dashboard/reducers/dashboardState.js +++ b/superset-frontend/src/dashboard/reducers/dashboardState.js @@ -148,7 +148,11 @@ export default function dashboardStateReducer(state = {}, action) { } else { updatedExpandedSlices[sliceId] = true; } - return { ...state, expandedSlices: updatedExpandedSlices }; + return { + ...state, + expandedSlices: updatedExpandedSlices, + hasUnsavedChanges: true, + }; }, [ON_CHANGE]() { return { ...state, hasUnsavedChanges: true };
