import React, { createContext, useContext, useEffect, useState } from 'react'; interface ModelContextType { progress: number; status: string; setProgress: (progress: number) => void; setStatus: (status: string) => void; model: string; setModel: (model: string) => void; } const ModelContext = createContext(undefined); export function ModelProvider({ children }: { children: React.ReactNode }) { const [progress, setProgress] = useState(0); const [status, setStatus] = useState('idle'); const [model, setModel] = useState(''); // set progress to 0 when model is changed useEffect(() => { setProgress(0); }, [model]); return ( {children} ); } export function useModel() { const context = useContext(ModelContext); if (context === undefined) { throw new Error('useModel must be used within a ModelProvider'); } return context; }