indexes.tsx67 lines · main
1import { ExternalLink } from 'lucide-react'
2import { Button } from 'ui'
3import { PageContainer } from 'ui-patterns/PageContainer'
4import {
5 PageHeader,
6 PageHeaderAside,
7 PageHeaderDescription,
8 PageHeaderMeta,
9 PageHeaderSummary,
10 PageHeaderTitle,
11} from 'ui-patterns/PageHeader'
12import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
13
14import { Indexes } from '@/components/interfaces/Database/Indexes/Indexes'
15import DatabaseLayout from '@/components/layouts/DatabaseLayout/DatabaseLayout'
16import { DefaultLayout } from '@/components/layouts/DefaultLayout'
17import { DocsButton } from '@/components/ui/DocsButton'
18import { DOCS_URL } from '@/lib/constants'
19import type { NextPageWithLayout } from '@/types'
20
21const IndexesPage: NextPageWithLayout = () => {
22 return (
23 <>
24 <PageHeader size="large">
25 <PageHeaderMeta>
26 <PageHeaderSummary>
27 <PageHeaderTitle>Database Indexes</PageHeaderTitle>
28 <PageHeaderDescription>
29 Improve query performance against your database
30 </PageHeaderDescription>
31 </PageHeaderSummary>
32 <PageHeaderAside>
33 <DocsButton
34 className="no-underline"
35 href={`${DOCS_URL}/guides/database/query-optimization`}
36 />
37 <Button asChild type="default" icon={<ExternalLink strokeWidth={1.5} />}>
38 <a
39 target="_blank"
40 rel="noreferrer"
41 className="no-underline"
42 href={`${DOCS_URL}/guides/database/extensions/index_advisor`}
43 >
44 Index Advisor
45 </a>
46 </Button>
47 </PageHeaderAside>
48 </PageHeaderMeta>
49 </PageHeader>
50 <PageContainer size="large">
51 <PageSection>
52 <PageSectionContent>
53 <Indexes />
54 </PageSectionContent>
55 </PageSection>
56 </PageContainer>
57 </>
58 )
59}
60
61IndexesPage.getLayout = (page) => (
62 <DefaultLayout>
63 <DatabaseLayout title="Indexes">{page}</DatabaseLayout>
64 </DefaultLayout>
65)
66
67export default IndexesPage