import * as Tooltip from '@radix-ui/react-tooltip' import dayjs from 'dayjs' import { useRouter } from 'next/router' import { useState } from 'react' import { IconCheck, IconClipboard } from 'ui' import { useParams } from 'common/hooks' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' import Table from 'components/to-be-cleaned/Table' import { useCustomDomainsQuery } from 'data/custom-domains/custom-domains-query' import type { EdgeFunctionsResponse } from 'data/edge-functions/edge-functions-query' interface EdgeFunctionsListItemProps { function: EdgeFunctionsResponse } const EdgeFunctionsListItem = ({ function: item }: EdgeFunctionsListItemProps) => { const router = useRouter() const { ref } = useParams() const { project } = useProjectContext() const [isCopied, setIsCopied] = useState(false) const { data: customDomainData } = useCustomDomainsQuery({ projectRef: ref }) // get the .co or .net TLD from the restUrl const restUrl = project?.restUrl const restUrlTld = restUrl !== undefined ? new URL(restUrl).hostname.split('.').pop() : 'co' const functionUrl = `https://${ref}.supabase.${restUrlTld}/functions/v1/${item.slug}` const endpoint = customDomainData?.customDomain?.status === 'active' ? `https://${customDomainData.customDomain.hostname}/functions/v1/${item.slug}` : functionUrl return ( { router.push(`/project/${ref}/functions/${item.slug}/details`) }} >

{item.name}

{endpoint}

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

{dayjs(item.updated_at).fromNow()}

Last updated on {dayjs(item.updated_at).format('DD MMM, YYYY HH:mm')}

{item.version}

) } export default EdgeFunctionsListItem