'use client' import { formatCNPJ } from '@brazilian-utils/brazilian-utils' import { CheckIcon, ChevronsUpDownIcon, PlusIcon } from 'lucide-react' import { useState } from 'react' import { useLocation, useParams } from 'react-router' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger } from '@repo/ui/components/ui/dropdown-menu' import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarRail, useSidebar } from '@repo/ui/components/ui/sidebar' import { initials } from '@repo/ui/lib/utils' type Org = { id: string name: string cnpj: string } export function OrgSwitcher({ orgs }: { orgs: Org[] }) { const location = useLocation() const { isMobile, state } = useSidebar() const { orgid } = useParams() const org = orgs.find((org) => org.id === orgid) as Org const [activeOrg, setActiveOrg] = useState(org) const [, fragment, _] = location.pathname.slice(1).split('/') const onSelect = (org: Org) => { setActiveOrg(org) window.location.assign(`/${org.id}/${fragment}`) } return (
{initials(activeOrg?.name)}
{activeOrg?.name} {formatCNPJ(activeOrg?.cnpj)}
Empresas {orgs.map((org, index) => ( onSelect(org)} className="group gap-2 p-2 cursor-pointer aria-selected:pointer-events-none" aria-selected={org.id === activeOrg.id} >
{initials(org?.name)}
{org?.name} {formatCNPJ(org?.cnpj)}
))}
Adicionar empresa
) }