import { ArrowDownNarrowWide, ArrowDownWideNarrow } from 'lucide-react' import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from 'ui' export const EDGE_FUNCTIONS_SORT_VALUES = [ 'name:asc', 'name:desc', 'created_at:asc', 'created_at:desc', 'updated_at:asc', 'updated_at:desc', ] as const export type EdgeFunctionsSort = (typeof EDGE_FUNCTIONS_SORT_VALUES)[number] export type EdgeFunctionsSortColumn = EdgeFunctionsSort extends `${infer Column}:${string}` ? Column : unknown export type EdgeFunctionsSortOrder = EdgeFunctionsSort extends `${string}:${infer Order}` ? Order : unknown interface EdgeFunctionsSortDropdownProps { value: EdgeFunctionsSort onChange: (value: EdgeFunctionsSort) => void } function getSortLabel(value: EdgeFunctionsSort) { const [sortCol] = value.split(':') return sortCol.replace('_', ' ') } export const EdgeFunctionsSortDropdown = ({ value, onChange }: EdgeFunctionsSortDropdownProps) => { return ( onChange(val as EdgeFunctionsSort)} > Sort by name Ascending Descending Sort by created at Ascending Descending Sort by updated at Ascending Descending ) }