useModuleBreadcrumbs.tsx 900 B

1234567891011121314151617181920212223242526
  1. import type {Crumb} from 'sentry/components/breadcrumbs';
  2. import {INSIGHTS_TITLE} from 'sentry/views/performance/settings';
  3. import {useModuleTitle} from 'sentry/views/performance/utils/useModuleTitle';
  4. import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
  5. import type {ModuleName} from 'sentry/views/starfish/types';
  6. type ModuleNameStrings = `${ModuleName}`;
  7. type RoutableModuleNames = Exclude<ModuleNameStrings, '' | 'other'>;
  8. export function useModuleBreadcrumbs(moduleName: RoutableModuleNames): Crumb[] {
  9. const moduleLabel = useModuleTitle(moduleName);
  10. const moduleTo = useModuleURL(moduleName);
  11. return [
  12. {
  13. label: INSIGHTS_TITLE,
  14. to: undefined, // There is no page at `/insights/` so there is nothing to link to
  15. preservePageFilters: true,
  16. },
  17. {
  18. label: moduleLabel,
  19. to: moduleTo,
  20. preservePageFilters: true,
  21. },
  22. ];
  23. }