From 2b6b7c54d515a8d35d1be498a42213ca50206b83 Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Mon, 3 Mar 2025 13:57:08 +0800 Subject: [PATCH] feat(workspace): add tabs state management with zustand and loading skeleton --- src/app/(app)/playground/@workspace/layout.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/app/(app)/playground/@workspace/layout.tsx b/src/app/(app)/playground/@workspace/layout.tsx index 051e097..ed8873a 100644 --- a/src/app/(app)/playground/@workspace/layout.tsx +++ b/src/app/(app)/playground/@workspace/layout.tsx @@ -1,4 +1,8 @@ +"use client"; + import { SquarePenIcon } from "lucide-react"; +import { Skeleton } from "@/components/ui/skeleton"; +import { useTabsStore } from "@/store/useTabsStore"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; @@ -7,8 +11,20 @@ interface WorkspaceLayoutProps { } export default function WorkspaceLayout({ editor }: WorkspaceLayoutProps) { + const { hydrated, workspaceTab, setWorkspaceTab } = useTabsStore(); + + if (!hydrated) return ( +
+ +
+ ) + + const handleTabChange = (value: string) => { + setWorkspaceTab(value); + }; + return ( - +