import { type ReactNode, useState } from 'react'; import { Crown } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { useLicense } from '@/context/LicenseContext'; interface ProGateProps { children: ReactNode; featureName?: string; } const DISMISS_KEY = 'sencho-upgrade-prompt-dismissed'; const DISMISS_DURATION_MS = 24 * 60 * 60 * 1000; // 24 hours (session-like) function isDismissedFromStorage(): boolean { const dismissedAt = localStorage.getItem(DISMISS_KEY); return !!dismissedAt && Date.now() - parseInt(dismissedAt, 10) < DISMISS_DURATION_MS; } export function ProGate({ children, featureName = 'This feature' }: ProGateProps) { const { isPro } = useLicense(); const [dismissed, setDismissed] = useState(isDismissedFromStorage); if (isPro) return <>{children}>; if (dismissed) { return (
Unlock advanced features like fleet management, viewer accounts, and more with a Sencho Pro license.