Route saving

This commit is contained in:
2026-02-27 23:31:58 +01:00
parent e9c0bf5c52
commit a9bf6d894b
2 changed files with 39 additions and 41 deletions
+10 -14
View File
@@ -14,9 +14,6 @@ import {
} from "@/lib/workspace"; } from "@/lib/workspace";
export default function Workspace() { export default function Workspace() {
const [currentWorkspace, setCurrentWorkspace] = useState<string>();
const [isInitialized, setIsInitialized] = useState(false);
const { workspace, loadWorkspace, updateEntity, setWorkspace } = const { workspace, loadWorkspace, updateEntity, setWorkspace } =
useWorkspace(); useWorkspace();
@@ -26,9 +23,10 @@ export default function Workspace() {
* Initialize workspace from cookie on mount * Initialize workspace from cookie on mount
*/ */
useEffect(() => { useEffect(() => {
const workspaceId = Cookies.get("workspace"); const routeString = Cookies.get("route");
setCurrentWorkspace(workspaceId); if (!routeString) return;
setIsInitialized(true); const route = JSON.parse(routeString) as Route;
setRoute(route);
}, []); }, []);
/** /**
@@ -41,16 +39,14 @@ export default function Workspace() {
* for this case. * for this case.
*/ */
useEffect(() => { useEffect(() => {
if (!isInitialized) return; loadWorkspace(route.workspace);
if (route.workspace) {
loadWorkspace(currentWorkspace); Cookies.set("route", JSON.stringify(route));
if (currentWorkspace) {
Cookies.set("workspace", currentWorkspace);
} else { } else {
Cookies.remove("workspace"); Cookies.remove("route");
} }
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [currentWorkspace, isInitialized]); }, [route]);
/** /**
* Load route (entity) from localStorage when workspace loads * Load route (entity) from localStorage when workspace loads
@@ -103,7 +99,7 @@ export default function Workspace() {
onClick={() => { onClick={() => {
const w = createDefaultWorkspace(); const w = createDefaultWorkspace();
saveWorkspaceToLocalStorage(w); saveWorkspaceToLocalStorage(w);
setCurrentWorkspace(w.id); setRoute({ workspace: w.id });
}} }}
> >
<div className="text-center space-y-6"> <div className="text-center space-y-6">
+9 -7
View File
@@ -92,7 +92,15 @@ export default function TaskView({
}; };
return ( return (
<div className="px-6 pt-4 flex flex-col gap-4"> <div className="px-6 pt-4 flex flex-col gap-4">
<div className="flex items-center justify-end"> <div className="flex items-center justify-end"></div>
<Tabs defaultValue="board" className="w-full">
<div className="flex justify-between">
<TabsList className="mb-4">
<TabsTrigger value="board">Board</TabsTrigger>
<TabsTrigger value="table">Table</TabsTrigger>
<TabsTrigger value="edit">Edit</TabsTrigger>
</TabsList>
<DropdownMenu> <DropdownMenu>
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button variant="outline" size="sm" disabled={isExporting}> <Button variant="outline" size="sm" disabled={isExporting}>
@@ -114,12 +122,6 @@ export default function TaskView({
</DropdownMenuContent> </DropdownMenuContent>
</DropdownMenu> </DropdownMenu>
</div> </div>
<Tabs defaultValue="board" className="w-full">
<TabsList className="mb-4">
<TabsTrigger value="board">Board</TabsTrigger>
<TabsTrigger value="table">Table</TabsTrigger>
<TabsTrigger value="edit">Edit</TabsTrigger>
</TabsList>
<TabsContent value="board" className="mt-0"> <TabsContent value="board" className="mt-0">
<BoardView <BoardView