import dayjs from 'dayjs' import Link from 'next/link' import { useRouter } from 'next/router' import { useParams } from 'common' import { useQueuesQuery } from 'data/database-queues/database-queues-query' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { DATETIME_FORMAT } from 'lib/constants' import { BreadcrumbItem_Shadcn_ as BreadcrumbItem, BreadcrumbLink_Shadcn_ as BreadcrumbLink, BreadcrumbList_Shadcn_ as BreadcrumbList, BreadcrumbPage_Shadcn_ as BreadcrumbPage, BreadcrumbSeparator_Shadcn_ as BreadcrumbSeparator, } from 'ui' import { PageHeader, PageHeaderBreadcrumb, PageHeaderDescription, PageHeaderMeta, PageHeaderSummary, PageHeaderTitle, } from 'ui-patterns/PageHeader' import { QueueTab } from './QueueTab' export const QueuePage = () => { const router = useRouter() const { ref, id, pageId, childId } = useParams() const childLabel = router?.query?.['child-label'] as string const { data: project } = useSelectedProjectQuery() const { data: queues } = useQueuesQuery({ projectRef: project?.ref, connectionString: project?.connectionString, }) const currentQueue = queues?.find((queue) => queue.queue_name === childId) const pageTitle = childLabel || childId || 'Queue' const getQueueType = (queue: typeof currentQueue) => { if (!queue) return 'Unknown' return queue.is_partitioned ? 'Partitioned' : queue.is_unlogged ? 'Unlogged' : 'Basic' } const pageSubtitle = currentQueue ? `${getQueueType(currentQueue)} queue created on ${dayjs(currentQueue.created_at).format(DATETIME_FORMAT)}` : undefined return ( <> Integrations Queues {childId} {pageTitle} {pageSubtitle && {pageSubtitle}} ) }