project-settings-nav.ts 4.4 KB

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