import { useEntitlements } from '../context/EntitlementsContext' /** * Zeigt Vereins-Kontingent für ein Feature (M4 UsageBadge). * Unbegrenzt (limit null) → nichts rendern. */ export default function FeatureUsageBadge({ featureId = 'ai_calls', label = 'KI-Kontingent' }) { const { entitlements, loading, error, getFeature } = useEntitlements() const feat = getFeature(featureId) if (loading && !feat) { return ( {label}: … ) } if (!feat) { if (error) { return ( {label}: — ) } return null } const { used = 0, limit, remaining, allowed, platform_exempt: platformExempt, reason } = feat if (platformExempt || reason === 'platform_exempt' || reason === 'capability_quota_bypass') { return ( {label}: Plattform (unbegrenzt) ) } // limit === 0 (z. B. Free-Plan ai_calls) anzeigen; nur echtes Unbegrenzt (null) ausblenden if (limit == null) return null const tone = !allowed || remaining === 0 ? 'var(--danger)' : 'var(--text2)' return ( {label}: {used}/{limit} {remaining != null ? ` (${remaining} übrig)` : ''} ) }