import type { WidgetTranslations } from '../i18n'; interface QuotaBlockedViewProps { status: 'no_subscription' | 'quota_exhausted' | 'subscription_inactive' | 'free_tier_exhausted' | 'visitor_rate_limited'; planName: string | null; cooldownMinutesRemaining?: number; onClose: () => void; t: WidgetTranslations['quota']; customContent?: { title?: string; message?: string; buttonLabel?: string; buttonUrl?: string; }; } export function QuotaBlockedView({ status, cooldownMinutesRemaining, onClose, t, customContent }: QuotaBlockedViewProps) { const getContent = () => { switch (status) { case 'no_subscription': return { icon: ( ), title: t.noSubscriptionTitle, message: t.noSubscriptionMessage, }; case 'quota_exhausted': return { icon: ( ), title: customContent?.title || t.limitReachedTitle, message: customContent?.message || t.limitReachedMessage, }; case 'subscription_inactive': return { icon: ( ), title: t.temporarilyUnavailableTitle, message: t.temporarilyUnavailableMessage, }; case 'free_tier_exhausted': return { icon: ( ), title: t.freeTierExhaustedTitle, message: t.freeTierExhaustedMessage, }; case 'visitor_rate_limited': return { icon: ( ), title: t.visitorLimitReachedTitle, message: t.visitorLimitReachedMessage(cooldownMinutesRemaining), }; } }; const content = getContent(); return (
{content.message}