'use client'; import React from 'react'; import Link from 'next/link'; import { Lock } from 'lucide-react'; import { useSubscription } from '@/lib/context/subscription-context'; import type { PlanFeature } from '@/lib/api/subscriptions'; interface FeatureGateProps { feature: PlanFeature; children: React.ReactNode; fallback?: React.ReactNode; } const FEATURE_MIN_PLAN: Record = { dashboard: 'Silver', wiki: 'Silver', user_management: 'Silver', csv_export: 'Silver', api_access: 'Gold', custom_interface: 'Platinium', dedicated_kam: 'Platinium', }; export default function FeatureGate({ feature, children, fallback }: FeatureGateProps) { const { hasFeature, loading } = useSubscription(); if (loading) { return <>{children}; } if (hasFeature(feature)) { return <>{children}; } if (fallback) { return <>{fallback}; } const minPlan = FEATURE_MIN_PLAN[feature] || 'Silver'; return (
{children}

Fonctionnalité {minPlan}+

Cette fonctionnalité nécessite le plan {minPlan} ou supérieur.

Voir les plans
); }