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)` : ''}
)
}