pooler-logs.tsx37 lines · main
1import { useParams } from 'common'
2import { parseAsString, useQueryState } from 'nuqs'
3import { LogoLoader } from 'ui'
4
5import { LogsTableName } from '@/components/interfaces/Settings/Logs/Logs.constants'
6import { LogsPreviewer } from '@/components/interfaces/Settings/Logs/LogsPreviewer'
7import DefaultLayout from '@/components/layouts/DefaultLayout'
8import LogsLayout from '@/components/layouts/LogsLayout/LogsLayout'
9import { useSupavisorConfigurationQuery } from '@/data/database/supavisor-configuration-query'
10import type { NextPageWithLayout } from '@/types'
11
12export const LogPage: NextPageWithLayout = () => {
13 const { ref } = useParams()
14 const [identifier] = useQueryState('db', parseAsString)
15 const { isPending: isLoading } = useSupavisorConfigurationQuery({ projectRef: ref ?? 'default' })
16
17 // this prevents initial load of pooler logs before config has been retrieved
18 if (isLoading) return <LogoLoader />
19
20 return (
21 <LogsPreviewer
22 condensedLayout
23 queryType="supavisor"
24 projectRef={ref as string}
25 tableName={LogsTableName.SUPAVISOR}
26 filterOverride={!!identifier ? { identifier } : undefined}
27 />
28 )
29}
30
31LogPage.getLayout = (page) => (
32 <DefaultLayout>
33 <LogsLayout title="Pooler Logs">{page}</LogsLayout>
34 </DefaultLayout>
35)
36
37export default LogPage