import React from "react"; import { ENABLE_LICENSING } from "../flags"; export interface LicenseGateProps { children: React.ReactNode; /** Rendered while a license check is pending/denied once licensing is wired. */ fallback?: React.ReactNode; } /** * Structural licensing gate. With `EXPO_PUBLIC_ENABLE_LICENSING` unset/false * (self-host default) it's a pass-through. SaaS production ships the flag * `true`; the actual licensing/subscription check lives in a separate app and * plugs in here later. Wrapping the app root with this now means the gate * exists identically everywhere — flipping the env var (and adding the check) * is the only change needed to enforce it. */ export function LicenseGate({ children }: LicenseGateProps) { if (!ENABLE_LICENSING) { return <>{children}; } // TODO(saas): delegate to the licensing app — validate subscription/seat and // render `fallback` when invalid. Until then, enabling the flag is a no-op // pass-through so the wiring can ship ahead of the integration. return <>{children}; } export default LicenseGate;