project-settings-nav.ts99 lines · main
1// @ts-nocheck
2import { SHORTCUT_REFERENCE_GROUPS } from '../referenceGroups'
3import { RegistryDefinations } from '../types'
4
5/**
6 * Contextual chords for jumping between Project Settings pages — `S + <letter>`.
7 *
8 * Active only while SettingsLayout is mounted. External settings-adjacent routes
9 * such as Data API, Vault, Subscription, and Usage intentionally stay out of
10 * this group.
11 */
12export const PROJECT_SETTINGS_NAV_SHORTCUT_IDS = {
13 NAV_PROJECT_SETTINGS_GENERAL: 'nav.project-settings-general',
14 NAV_PROJECT_SETTINGS_COMPUTE_AND_DISK: 'nav.project-settings-compute-and-disk',
15 NAV_PROJECT_SETTINGS_INFRASTRUCTURE: 'nav.project-settings-infrastructure',
16 NAV_PROJECT_SETTINGS_INTEGRATIONS: 'nav.project-settings-integrations',
17 NAV_PROJECT_SETTINGS_WEBHOOKS: 'nav.project-settings-webhooks',
18 NAV_PROJECT_SETTINGS_API_KEYS: 'nav.project-settings-api-keys',
19 NAV_PROJECT_SETTINGS_JWT_KEYS: 'nav.project-settings-jwt-keys',
20 NAV_PROJECT_SETTINGS_LOG_DRAINS: 'nav.project-settings-log-drains',
21 NAV_PROJECT_SETTINGS_ADDONS: 'nav.project-settings-addons',
22 NAV_PROJECT_SETTINGS_DASHBOARD: 'nav.project-settings-dashboard',
23}
24
25export type ProjectSettingsNavShortcutId =
26 (typeof PROJECT_SETTINGS_NAV_SHORTCUT_IDS)[keyof typeof PROJECT_SETTINGS_NAV_SHORTCUT_IDS]
27
28export const projectSettingsNavRegistry: RegistryDefinations<ProjectSettingsNavShortcutId> = {
29 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_GENERAL]: {
30 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_GENERAL,
31 label: 'Go to General',
32 sequence: ['S', 'G'],
33 showInSettings: false,
34 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
35 },
36 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_COMPUTE_AND_DISK]: {
37 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_COMPUTE_AND_DISK,
38 label: 'Go to Compute and Disk',
39 sequence: ['S', 'C'],
40 showInSettings: false,
41 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
42 },
43 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_INFRASTRUCTURE]: {
44 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_INFRASTRUCTURE,
45 label: 'Go to Infrastructure',
46 sequence: ['S', 'I'],
47 showInSettings: false,
48 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
49 },
50 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_INTEGRATIONS]: {
51 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_INTEGRATIONS,
52 label: 'Go to Integrations',
53 sequence: ['S', 'N'],
54 showInSettings: false,
55 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
56 },
57 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_WEBHOOKS]: {
58 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_WEBHOOKS,
59 label: 'Go to Webhooks',
60 sequence: ['S', 'W'],
61 showInSettings: false,
62 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
63 },
64 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_API_KEYS]: {
65 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_API_KEYS,
66 label: 'Go to API Keys',
67 sequence: ['S', 'K'],
68 showInSettings: false,
69 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
70 },
71 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_JWT_KEYS]: {
72 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_JWT_KEYS,
73 label: 'Go to JWT Keys',
74 sequence: ['S', 'J'],
75 showInSettings: false,
76 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
77 },
78 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_LOG_DRAINS]: {
79 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_LOG_DRAINS,
80 label: 'Go to Log Drains',
81 sequence: ['S', 'L'],
82 showInSettings: false,
83 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
84 },
85 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_ADDONS]: {
86 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_ADDONS,
87 label: 'Go to Add-ons',
88 sequence: ['S', 'A'],
89 showInSettings: false,
90 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
91 },
92 [PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_DASHBOARD]: {
93 id: PROJECT_SETTINGS_NAV_SHORTCUT_IDS.NAV_PROJECT_SETTINGS_DASHBOARD,
94 label: 'Go to Dashboard',
95 sequence: ['S', 'D'],
96 showInSettings: false,
97 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_PROJECT_SETTINGS,
98 },
99}