diff --git a/src/components/team-switcher.tsx b/src/components/workspace-switcher.tsx similarity index 59% rename from src/components/team-switcher.tsx rename to src/components/workspace-switcher.tsx index 33de027..e971aea 100644 --- a/src/components/team-switcher.tsx +++ b/src/components/workspace-switcher.tsx @@ -1,8 +1,12 @@ "use client"; import * as React from "react"; -import { ChevronsUpDown, Plus } from "lucide-react"; - +import { + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, + useSidebar, +} from "@/components/ui/sidebar"; import { DropdownMenu, DropdownMenuContent, @@ -12,24 +16,29 @@ import { DropdownMenuShortcut, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import { - SidebarMenu, - SidebarMenuButton, - SidebarMenuItem, - useSidebar, -} from "@/components/ui/sidebar"; +import { Skeleton } from "./ui/skeleton"; +import { ChevronsUpDown, Plus } from "lucide-react"; +import { useGetWorkspaces } from "@/features/workspaces/api/use-get-workspaces"; +import { WorkspaceAvatar } from "@/features/workspaces/components/workspace-avatar"; -export function TeamSwitcher({ - teams, -}: { - teams: { - name: string; - logo: React.ElementType; - plan: string; - }[]; -}) { +export function WorkspaceSwitcher() { const { isMobile } = useSidebar(); - const [activeTeam, setActiveTeam] = React.useState(teams[0]); + const { data: workspaces } = useGetWorkspaces(); + const [activeWorkspace, setActiveWorkspace] = React.useState( + workspaces?.documents[0] + ); + + React.useEffect(() => { + setActiveWorkspace(workspaces?.documents[0]); + }, [workspaces]); + + if (!activeWorkspace) + return ( +
+ + +
+ ); return ( @@ -40,14 +49,18 @@ export function TeamSwitcher({ size="lg" className="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground" > -
- +
+
- {activeTeam.name} + {activeWorkspace.name} - {activeTeam.plan} + {/* */}
@@ -59,18 +72,22 @@ export function TeamSwitcher({ sideOffset={4} > - Teams + Workspaces - {teams.map((team, index) => ( + {workspaces?.documents.map((workspace, index) => ( setActiveTeam(team)} + key={workspace.$id} + onClick={() => setActiveWorkspace(workspace)} className="gap-2 p-2" >
- +
- {team.name} + {workspace.name} ⌘{index + 1}
))} @@ -79,7 +96,9 @@ export function TeamSwitcher({
-
Add team
+
+ Add workspace +