"use client"; import { createContext, useContext, useEffect, useState } from "react"; type DomainContextType = { features: { requireLogin: boolean; privacy: boolean; browse: boolean; }; apiUrl: string | null; }; export const DomainContext = createContext({ features: { requireLogin: false, privacy: true, browse: false, }, apiUrl: null, }); export const DomainContextProvider = ({ config, children }) => { const [context, setContext] = useState(); useEffect(() => { if (!config) return; setContext({ features: { requireLogin: !!config["features"]["requireLogin"], privacy: !!config["features"]["privacy"], browse: !!config["features"]["browse"], }, apiUrl: config["api_url"], }); }, [config]); if (!context) return; return ( {children} ); }; export const featureEnabled = ( featureName: "requireLogin" | "privacy" | "browse", ) => { const context = useContext(DomainContext); return context.features[featureName] as boolean | undefined; };