import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Dialog, DialogContent } from "@calcom/ui/components/dialog"; import { Button } from "@calcom/ui/components/button"; import { useGatedFeaturesStore, GatedFeatures } from "../stores/gatedFeaturesStore"; type FeatureContent = { badgeText: string; title: string; image: string; description: string; features: string[]; learnMoreUrl: string; ctaUrl: string; }; const content: Record = { roles_and_permissions: { badgeText: "roles_and_permissions", title: "only_available_on_orgs_plan", image: "/gated-features/roles_and_permissions.svg", description: "upgrade_team_to_orgs_with_price", features: [ "1_parent_team_unlimited_subteams", "attribute_based_routing", "compliance_check", "and_more_features", ], learnMoreUrl: "https://cal.com/enterprise", ctaUrl: "/settings/organizations/new", }, }; export function GatedFeaturesModal() { const { t } = useLocale(); const isOpen = useGatedFeaturesStore((state) => state.isOpen); const activeFeature = useGatedFeaturesStore((state) => state.activeFeature); const close = useGatedFeaturesStore((state) => state.close); const data = activeFeature ? content[activeFeature] : null; if (!data) { return null; } const { badgeText, description, image, title, features, learnMoreUrl, ctaUrl } = data; return ( !open && close()}>
{t(title)}
{t(badgeText)}
{t(title)}
{t(description)}
    {features.map((feature) => (
  • {t(feature)}
  • ))}
); }