'use client'; import { createContext, ReactNode, useContext, useEffect, useState } from 'react'; interface AppConfig { uiVersion: string; apiVersion: string; backendApiEndpoint: string | null; } interface AppConfigContextType { config: AppConfig | null; loading: boolean; } const defaultConfig: AppConfig = { uiVersion: 'dev', apiVersion: 'unknown', backendApiEndpoint: null, }; const AppConfigContext = createContext({ config: null, loading: true, }); export function AppConfigProvider({ children }: { children: ReactNode }) { const [config, setConfig] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { fetch('/api/config/version') .then((res) => res.json()) .then((data) => { setConfig({ uiVersion: data.ui || 'dev', apiVersion: data.api || 'unknown', backendApiEndpoint: data.backendApiEndpoint || null, }); }) .catch(() => { setConfig(defaultConfig); }) .finally(() => { setLoading(false); }); }, []); return ( {children} ); } export function useAppConfig() { return useContext(AppConfigContext); }