import { Boxes, Check, ChevronsUpDown, Plus } from 'lucide-react'
import Link from 'next/link'
import { useRouter } from 'next/router'
import { useState } from 'react'
import { useParams } from 'common'
import PartnerIcon from 'components/ui/PartnerIcon'
import { useOrganizationsQuery } from 'data/organizations/organizations-query'
import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled'
import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization'
import {
Badge,
Button,
CommandEmpty_Shadcn_,
CommandGroup_Shadcn_,
CommandInput_Shadcn_,
CommandItem_Shadcn_,
CommandList_Shadcn_,
CommandSeparator_Shadcn_,
Command_Shadcn_,
PopoverContent_Shadcn_,
PopoverTrigger_Shadcn_,
Popover_Shadcn_,
ScrollArea,
cn,
} from 'ui'
import { ShimmeringLoader } from 'ui-patterns/ShimmeringLoader'
export const OrganizationDropdown = () => {
const router = useRouter()
const { slug: routeSlug } = useParams()
const { data: selectedOrganization } = useSelectedOrganizationQuery()
const { data: organizations, isPending: isLoadingOrganizations } = useOrganizationsQuery()
const organizationCreationEnabled = useIsFeatureEnabled('organizations:create')
const slug = selectedOrganization?.slug
const orgName = selectedOrganization?.name
const [open, setOpen] = useState(false)
if (isLoadingOrganizations) {
return
}
return (
<>
{orgName ?? 'Select an organization'}
{!!selectedOrganization && (
{selectedOrganization?.plan.name}
)}
}
/>
No organizations found
7 ? 'h-[210px]' : ''}>
{organizations?.map((org) => {
const href = !!routeSlug
? router.pathname.replace('[slug]', org.slug)
: `/org/${org.slug}`
return (
{
setOpen(false)
router.push(href)
}}
onClick={() => setOpen(false)}
>
{org.slug === slug && }
)
})}
{
setOpen(false)
router.push(`/organizations`)
}}
onClick={() => setOpen(false)}
>
All Organizations
{organizationCreationEnabled && (
<>
{
setOpen(false)
router.push(`/new`)
}}
onClick={() => setOpen(false)}
>
New organization
>
)}
>
)
}