Files
supabase/apps/studio/components/interfaces/Integrations/Queues/QueuePage.tsx
Gildas Garcia 426f150e02 chore: remove <Breadcrumb> _Shadcn_ suffix (#45984)
## Problem

The `_Shadcn_` suffix isn't needed anymore on breadcrumb components

## Solution

Remove it. No other changes

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Refactor**
* Standardized breadcrumb component exports across the codebase by
removing internal aliasing and using direct component exports. No UI,
behavior, or public API changes; end-user experience unchanged.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/45984)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-15 16:40:13 +02:00

95 lines
2.9 KiB
TypeScript

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 (
<>
<PageHeader size="full" className="pb-6">
<PageHeaderBreadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink asChild>
<Link href={`/project/${ref}/integrations`}>Integrations</Link>
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink asChild>
<Link
href={
pageId
? `/project/${ref}/integrations/${id}/${pageId}`
: `/project/${ref}/integrations/${id}`
}
>
Queues
</Link>
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>{childId}</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</PageHeaderBreadcrumb>
<PageHeaderMeta>
<PageHeaderSummary>
<PageHeaderTitle>{pageTitle}</PageHeaderTitle>
{pageSubtitle && <PageHeaderDescription>{pageSubtitle}</PageHeaderDescription>}
</PageHeaderSummary>
</PageHeaderMeta>
</PageHeader>
<QueueTab />
</>
)
}