moduleUpsellHookWrapper.tsx 998 B

123456789101112131415161718192021222324252627282930313233
  1. import Feature from 'sentry/components/acl/feature';
  2. import HookOrDefault from 'sentry/components/hookOrDefault';
  3. import {NoAccess} from 'sentry/components/noAccess';
  4. import useOrganization from 'sentry/utils/useOrganization';
  5. import type {TitleableModuleNames} from 'sentry/views/insights/common/components/modulePageProviders';
  6. import {MODULE_FEATURE_MAP} from 'sentry/views/insights/settings';
  7. export function ModuleBodyUpsellHook({
  8. moduleName,
  9. children,
  10. }: {
  11. children: React.ReactNode;
  12. moduleName: TitleableModuleNames;
  13. }) {
  14. const organization = useOrganization();
  15. return (
  16. <UpsellPageHook moduleName={moduleName} fullPage={false}>
  17. <Feature
  18. features={MODULE_FEATURE_MAP[moduleName]}
  19. organization={organization}
  20. renderDisabled={NoAccess}
  21. >
  22. {children}
  23. </Feature>
  24. </UpsellPageHook>
  25. );
  26. }
  27. const UpsellPageHook = HookOrDefault({
  28. hookName: 'component:insights-upsell-page',
  29. defaultComponent: ({children}) => children,
  30. });