import * as Tooltip from '@radix-ui/react-tooltip' import { PermissionAction } from '@supabase/shared-types/out/constants' import { Plus } from 'lucide-react' import Image from 'next/legacy/image' import { useRouter } from 'next/router' import { useState } from 'react' import { useParams } from 'common' import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' import { Button, CommandEmpty_Shadcn_, CommandGroup_Shadcn_, CommandInput_Shadcn_, CommandItem_Shadcn_, CommandList_Shadcn_, Command_Shadcn_, PopoverContent_Shadcn_, PopoverTrigger_Shadcn_, Popover_Shadcn_, ScrollArea, } from 'ui' import { WRAPPERS } from './Wrappers.constants' interface WrapperDropdownProps { buttonText?: string align?: 'center' | 'end' } const WrapperDropdown = ({ buttonText = 'Add wrapper', align = 'end' }: WrapperDropdownProps) => { const router = useRouter() const { ref } = useParams() const canManageWrappers = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'wrappers') const [open, setOpen] = useState(false) if (!canManageWrappers) { return ( }> {buttonText} You need additional permissions to add wrappers ) } return ( } > {buttonText} No wrappers found... {WRAPPERS.map((wrapper) => ( { setOpen(false) router.push( `/project/${ref}/database/wrappers/new?type=${wrapper.name.toLowerCase()}` ) }} className="gap-2 cursor-pointer" > {wrapper.label} ))} ) } export default WrapperDropdown