// react/LicenseProvider.js import React, { createContext, useState, useEffect } from 'react'; import { activateLicense } from '../client/validate'; import { cacheLicenseData, getCachedLicenseData, isLicenseCacheValid } from '../client/offline'; export const LicenseContext = createContext(); export const LicenseProvider = ({ userId, licenseKey, children }) => { const [isLicensed, setIsLicensed] = useState(false); useEffect(() => { const checkLicense = async () => { if (navigator.onLine) { const valid = await activateLicense(userId, licenseKey); setIsLicensed(valid); if (valid) cacheLicenseData({ userId, licenseKey }); } else { setIsLicensed(isLicenseCacheValid()); } }; checkLicense(); }, [userId, licenseKey]); return ( {children} ); };