'use client'; import { Button } from '@/components/ui/button'; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem } from '@/components/ui/command'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; import { cn } from '@/lib/utils'; import { Workspace } from '@prisma/client'; import { CommandList } from 'cmdk'; import { Check, ChevronsUpDown } from 'lucide-react'; import { usePathname, useRouter } from 'next/navigation'; import React from 'react'; export default function WorkspaceNavigation({ workspaces }: { workspaces: Pick[] }) { const pathname = usePathname(); const [open, setOpen] = React.useState(false); const [value, setValue] = React.useState | null>(findSelectedWorkspace()); const router = useRouter(); function onWorkspaceSelectionChange(workspace: Pick) { router.push(`/${workspaces.find((w) => w.id === workspace.id)?.slug}/${pathname.split('/')[2]}`); // router.push(`/${workspaces.find((w) => w.id === workspace.id)?.slug}`); } function findSelectedWorkspace(): Pick | null { const workspace = pathname.split('/')[1]; if (!workspace) return null; const w = workspaces.find((w) => w.slug === workspace); if (!w) return null; return { id: w.id }; } return ( {workspaces.map((workspace) => ( { setValue({ id: currentValue }); onWorkspaceSelectionChange({ id: currentValue }); setOpen(false); }} > {workspace.name} ))} ); }