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']; } export function QuotaBlockedView({ status, cooldownMinutesRemaining, onClose, t }: QuotaBlockedViewProps) { const getContent = () => { switch (status) { case 'no_subscription': return { icon: ( ), title: t.noSubscriptionTitle, message: t.noSubscriptionMessage, }; case 'quota_exhausted': return { icon: ( ), title: t.limitReachedTitle, 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}