From c40f4ab6cfd7d7af5280f8dda2c7e672d21e2b37 Mon Sep 17 00:00:00 2001 From: deekshitha Date: Mon, 13 Jul 2026 11:48:15 +0530 Subject: [PATCH] feat(dashboard): add confirmation modal and toast notification for reset layout --- .../dashboard/CustomizableDashboard.tsx | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/components/dashboard/CustomizableDashboard.tsx b/src/components/dashboard/CustomizableDashboard.tsx index f544dfa37..f81b09bec 100644 --- a/src/components/dashboard/CustomizableDashboard.tsx +++ b/src/components/dashboard/CustomizableDashboard.tsx @@ -43,6 +43,8 @@ import DailyNoteWidget from "@/components/DailyNoteWidget"; import WidgetErrorBoundary from "@/components/WidgetErrorBoundary"; import DashboardLayoutToolbar from "@/components/dashboard/DashboardLayoutToolbar"; import { DashboardWidgetA11yProvider } from "@/components/dashboard/DashboardWidgetA11yContext"; +import ConfirmModal from "@/components/ConfirmModal"; +import { toast } from "sonner"; import SortableDashboardWidget from "@/components/dashboard/SortableDashboardWidget"; import { DASHBOARD_LAYOUT_STORAGE_KEY, @@ -476,6 +478,7 @@ export default function CustomizableDashboard() { const [isEditing, setIsEditing] = useState(false); const [isHydrated, setIsHydrated] = useState(false); const [hasLoadedRemoteLayout, setHasLoadedRemoteLayout] = useState(false); + const [isConfirmResetOpen, setIsConfirmResetOpen] = useState(false); const sensors = useSensors( useSensor(PointerSensor, { activationConstraint: { distance: 8 }, @@ -622,8 +625,18 @@ export default function CustomizableDashboard() { setLayout((currentLayout) => showWidget(currentLayout, widgetId)); }; - const handleResetLayout = () => { + const handleResetClick = () => { + setIsConfirmResetOpen(true); + }; + + const handleResetConfirm = () => { setLayout(resetDashboardLayout()); + setIsConfirmResetOpen(false); + toast.success("Dashboard layout has been reset to defaults."); + }; + + const handleResetCancel = () => { + setIsConfirmResetOpen(false); }; return ( @@ -632,7 +645,7 @@ export default function CustomizableDashboard() { isEditing={isEditing} hiddenWidgets={layout.hidden} onEditingChange={setIsEditing} - onReset={handleResetLayout} + onReset={handleResetClick} onShowWidget={handleShowWidget} /> @@ -699,6 +712,16 @@ export default function CustomizableDashboard() { })} + + ); } \ No newline at end of file