"use client"; import { Button } from "@app/components/ui/button"; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "@app/components/ui/command"; import { Popover, PopoverContent, PopoverTrigger } from "@app/components/ui/popover"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@app/components/ui/tooltip"; import { useEnvContext } from "@app/hooks/useEnvContext"; import { cn } from "@app/lib/cn"; import { ListUserOrgsResponse } from "@server/routers/org"; import { Check, ChevronsUpDown, Plus, Building2, Users } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { useUserContext } from "@app/hooks/useUserContext"; import { useTranslations } from "next-intl"; interface OrgSelectorProps { orgId?: string; orgs?: ListUserOrgsResponse["orgs"]; isCollapsed?: boolean; } export function OrgSelector({ orgId, orgs, isCollapsed = false }: OrgSelectorProps) { const { user } = useUserContext(); const [open, setOpen] = useState(false); const router = useRouter(); const { env } = useEnvContext(); const t = useTranslations(); const selectedOrg = orgs?.find((org) => org.orgId === orgId); const orgSelectorContent = ( {isCollapsed ? ( ) : ( {t('org')} {selectedOrg?.name || t('noneSelected')} )} {t('orgNotFound2')} {(!env.flags.disableUserCreateOrg || user.serverAdmin) && ( <> { setOpen(false); router.push("/setup"); }} className="mx-2 rounded-md" > {t('setupNewOrg')} {t('createNewOrgDescription')} > )} {orgs?.map((org) => ( { setOpen(false); router.push(`/${org.orgId}/settings`); }} className="mx-2 rounded-md" > {org.name} {t('organization')} ))} ); if (isCollapsed) { return ( {orgSelectorContent} {selectedOrg?.name || t('noneSelected')} {t('org')} ); } return orgSelectorContent; }
{selectedOrg?.name || t('noneSelected')}
{t('org')}