"use client"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, } from "@unsend/ui/src/dialog"; import { CheckCircle2 } from "lucide-react"; import { useUpgradeModalStore } from "~/store/upgradeModalStore"; import { PLAN_PERKS } from "~/lib/constants/payments"; import { LimitReason } from "~/lib/constants/plans"; import { UpgradeButton } from "./UpgradeButton"; export const UpgradeModal = () => { const { isOpen, reason, action: { closeModal }, } = useUpgradeModalStore(); const basicPlanPerks = PLAN_PERKS.BASIC || []; return ( !open && closeModal()}> Upgrade to Basic Plan {(() => { const messages: Record = { [LimitReason.DOMAIN]: "You've reached the domain limit for your current plan.", [LimitReason.CONTACT_BOOK]: "You've reached the contact book limit for your current plan.", [LimitReason.TEAM_MEMBER]: "You've reached the team member limit for your current plan.", [LimitReason.EMAIL]: "You've reached the email sending limit for your current plan.", }; return reason ? `${messages[reason] ?? ""} Upgrade to unlock this feature and more.` : "Unlock more features with our Basic plan."; })()}

What you'll get:

    {basicPlanPerks.map((perk, index) => (
  • {perk}
  • ))}
); };