From a9bf6d894bcc20f5c3543ad5665a162e9aed0ea1 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 27 Feb 2026 23:31:58 +0100 Subject: [PATCH] Route saving --- src/app/workspace/page.tsx | 24 ++++++-------- src/components/view/TaskView.tsx | 56 +++++++++++++++++--------------- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/src/app/workspace/page.tsx b/src/app/workspace/page.tsx index 389f65a..4a512cb 100644 --- a/src/app/workspace/page.tsx +++ b/src/app/workspace/page.tsx @@ -14,9 +14,6 @@ import { } from "@/lib/workspace"; export default function Workspace() { - const [currentWorkspace, setCurrentWorkspace] = useState(); - const [isInitialized, setIsInitialized] = useState(false); - const { workspace, loadWorkspace, updateEntity, setWorkspace } = useWorkspace(); @@ -26,9 +23,10 @@ export default function Workspace() { * Initialize workspace from cookie on mount */ useEffect(() => { - const workspaceId = Cookies.get("workspace"); - setCurrentWorkspace(workspaceId); - setIsInitialized(true); + const routeString = Cookies.get("route"); + if (!routeString) return; + const route = JSON.parse(routeString) as Route; + setRoute(route); }, []); /** @@ -41,16 +39,14 @@ export default function Workspace() { * for this case. */ useEffect(() => { - if (!isInitialized) return; - - loadWorkspace(currentWorkspace); - if (currentWorkspace) { - Cookies.set("workspace", currentWorkspace); + loadWorkspace(route.workspace); + if (route.workspace) { + Cookies.set("route", JSON.stringify(route)); } else { - Cookies.remove("workspace"); + Cookies.remove("route"); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [currentWorkspace, isInitialized]); + }, [route]); /** * Load route (entity) from localStorage when workspace loads @@ -103,7 +99,7 @@ export default function Workspace() { onClick={() => { const w = createDefaultWorkspace(); saveWorkspaceToLocalStorage(w); - setCurrentWorkspace(w.id); + setRoute({ workspace: w.id }); }} >
diff --git a/src/components/view/TaskView.tsx b/src/components/view/TaskView.tsx index edca4d6..bb28ec8 100644 --- a/src/components/view/TaskView.tsx +++ b/src/components/view/TaskView.tsx @@ -92,34 +92,36 @@ export default function TaskView({ }; return (
-
- - - - - - handleExport("csv")}> - Export as CSV - - handleExport("markdown")}> - Export as Markdown - - - handleExport("json")}> - Export as JSON - - - -
+
- - Board - Table - Edit - +
+ + Board + Table + Edit + + + + + + + + handleExport("csv")}> + Export as CSV + + handleExport("markdown")}> + Export as Markdown + + + handleExport("json")}> + Export as JSON + + + +