Logs.Commands.tsx69 lines · main
1import { useParams } from 'common'
2import type { CommandOptions } from 'ui-patterns/CommandMenu'
3import { useRegisterCommands } from 'ui-patterns/CommandMenu'
4import { IRouteCommand } from 'ui-patterns/CommandMenu/internal/types'
5
6import { COMMAND_MENU_SECTIONS } from '@/components/interfaces/App/CommandMenu/CommandMenu.utils'
7import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
8
9export function useLogsGotoCommands(options?: CommandOptions) {
10 let { ref } = useParams()
11 ref ||= '_'
12
13 const { logsAll, logsCollections } = useIsFeatureEnabled(['logs:all', 'logs:collections'])
14
15 useRegisterCommands(
16 COMMAND_MENU_SECTIONS.NAVIGATE,
17 logsAll
18 ? [
19 {
20 id: 'nav-logs-explorer',
21 name: 'Logs Explorer',
22 route: `/project/${ref}/logs/explorer`,
23 defaultHidden: true,
24 },
25 ...(logsCollections
26 ? ([
27 {
28 id: 'nav-logs-postgres',
29 name: 'Postgres Logs',
30 route: `/project/${ref}/logs/postgres-logs`,
31 defaultHidden: true,
32 },
33 {
34 id: 'nav-logs-postgrest',
35 name: 'PostgREST Logs',
36 route: `/project/${ref}/logs/postgrest-logs`,
37 defaultHidden: true,
38 },
39 {
40 id: 'nav-logs-pooler',
41 name: 'Pooler Logs',
42 route: `/project/${ref}/logs/pooler-logs`,
43 defaultHidden: true,
44 },
45 {
46 id: 'nav-logs-auth',
47 name: 'Auth Logs',
48 route: `/project/${ref}/logs/auth-logs`,
49 defaultHidden: true,
50 },
51 {
52 id: 'nav-logs-storage',
53 name: 'Storage Logs',
54 route: `/project/${ref}/logs/storage-logs`,
55 defaultHidden: true,
56 },
57 {
58 id: 'nav-logs-realtime',
59 name: 'Realtime Logs',
60 route: `/project/${ref}/logs/realtime-logs`,
61 defaultHidden: true,
62 },
63 ] as IRouteCommand[])
64 : []),
65 ]
66 : [],
67 { ...options, deps: [ref] }
68 )
69}