import { IS_PLATFORM } from 'common' import { useParams } from 'common/hooks' import dayjs from 'dayjs' import { Check, Copy } from 'lucide-react' import { useRouter } from 'next/router' import { useState } from 'react' import { TableCell, TableRow, copyToClipboard } from 'ui' import { TimestampInfo } from 'ui-patterns' import { useProjectSettingsV2Query } from '@/data/config/project-settings-v2-query' import { useCustomDomainsQuery } from '@/data/custom-domains/custom-domains-query' import type { EdgeFunctionsResponse } from '@/data/edge-functions/edge-functions-query' import { createNavigationHandler } from '@/lib/navigation' interface EdgeFunctionsListItemProps { function: EdgeFunctionsResponse } export const EdgeFunctionsListItem = ({ function: item }: EdgeFunctionsListItemProps) => { const router = useRouter() const { ref } = useParams() const [isCopied, setIsCopied] = useState(false) const { data: settings } = useProjectSettingsV2Query({ projectRef: ref }) const { data: customDomainData } = useCustomDomainsQuery({ projectRef: ref }) const protocol = settings?.app_config?.protocol ?? 'https' const endpoint = settings?.app_config?.endpoint ?? '' const functionUrl = customDomainData?.customDomain?.status === 'active' ? `https://${customDomainData.customDomain.hostname}/functions/v1/${item.slug}` : `${protocol}://${endpoint}/functions/v1/${item.slug}` const handleNavigation = createNavigationHandler( `/project/${ref}/functions/${item.slug}${IS_PLATFORM ? '' : `/details`}`, router ) return (

{item.name}

{functionUrl}

{dayjs(item.created_at).format('DD MMM, YYYY HH:mm')}

{item.version}

) }