import dayjs from 'dayjs' import { Check, Copy } from 'lucide-react' import { useRouter } from 'next/router' import { useState } from 'react' import { useParams } from 'common/hooks' 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 { copyToClipboard, TableCell, TableRow } from 'ui' import { TimestampInfo } from 'ui-patterns' 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}`, router) return (

{item.name}

{functionUrl}

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

{item.version}

) }