import { useParams } from 'common'
import dayjs from 'dayjs'
import Link from 'next/link'
import { useRouter } from 'next/router'
import {
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from 'ui'
import {
PageHeader,
PageHeaderBreadcrumb,
PageHeaderDescription,
PageHeaderMeta,
PageHeaderSummary,
PageHeaderTitle,
} from 'ui-patterns/PageHeader'
import { QueueTab } from './QueueTab'
import { useQueuesQuery } from '@/data/database-queues/database-queues-query'
import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
import { DATETIME_FORMAT } from '@/lib/constants'
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,
})
// pgmq is case-insensitive when storing queue names — compare lowercased to be safe
const currentQueue = queues?.find(
(queue) => queue.queue_name.toLowerCase() === childId?.toLowerCase()
)
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}}
>
)
}