frontendPageHeader.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import normalizeUrl from 'sentry/utils/url/normalizeUrl';
  2. import useOrganization from 'sentry/utils/useOrganization';
  3. import {
  4. DomainViewHeader,
  5. type Props as HeaderProps,
  6. } from 'sentry/views/insights/pages/domainViewHeader';
  7. import {
  8. FRONTEND_LANDING_SUB_PATH,
  9. FRONTEND_LANDING_TITLE,
  10. } from 'sentry/views/insights/pages/frontend/settings';
  11. import {DOMAIN_VIEW_BASE_URL} from 'sentry/views/insights/pages/settings';
  12. import {ModuleName} from 'sentry/views/insights/types';
  13. type Props = {
  14. headerTitle: HeaderProps['headerTitle'];
  15. breadcrumbs?: HeaderProps['additionalBreadCrumbs'];
  16. headerActions?: HeaderProps['additonalHeaderActions'];
  17. hideDefaultTabs?: HeaderProps['hideDefaultTabs'];
  18. module?: HeaderProps['selectedModule'];
  19. tabs?: HeaderProps['tabs'];
  20. };
  21. // TODO - add props to append to breadcrumbs and change title
  22. export function FrontendHeader({
  23. module,
  24. headerActions,
  25. headerTitle,
  26. breadcrumbs,
  27. tabs,
  28. hideDefaultTabs,
  29. }: Props) {
  30. const {slug} = useOrganization();
  31. const frontendBaseUrl = normalizeUrl(
  32. `/organizations/${slug}/${DOMAIN_VIEW_BASE_URL}/${FRONTEND_LANDING_SUB_PATH}/`
  33. );
  34. const modules = [ModuleName.VITAL, ModuleName.HTTP, ModuleName.RESOURCE];
  35. return (
  36. <DomainViewHeader
  37. domainBaseUrl={frontendBaseUrl}
  38. domainTitle={FRONTEND_LANDING_TITLE}
  39. modules={modules}
  40. selectedModule={module}
  41. additionalBreadCrumbs={breadcrumbs}
  42. additonalHeaderActions={headerActions}
  43. headerTitle={headerTitle}
  44. tabs={tabs}
  45. hideDefaultTabs={hideDefaultTabs}
  46. />
  47. );
  48. }