import { createContext, Dispatch, SetStateAction } from 'react'; export interface OfflineMode { isManuallyOffline: boolean; isNetworkOnline: boolean; isOffline: boolean; isDatabaseInitialized: boolean; error: string | null; } export interface OfflineContextType { offlineMode: OfflineMode; setOfflineMode: Dispatch>; toggleOfflineMode: () => void; initializeDatabase: (userId: string, encryptionKey?: string) => Promise; isCurrentlyOffline: () => boolean; } export const defaultOfflineMode: OfflineMode = { isManuallyOffline: false, isNetworkOnline: typeof navigator !== 'undefined' ? navigator.onLine : true, isOffline: false, isDatabaseInitialized: false, error: null }; const OfflineContext = createContext({ offlineMode: defaultOfflineMode, setOfflineMode: () => {}, toggleOfflineMode: () => {}, initializeDatabase: async () => false, isCurrentlyOffline: () => false }); export default OfflineContext;