import { SeriesSyncCompare, SyncedSeries } from "@/lib/models/SyncedSeries"; import { Context, createContext, Dispatch, SetStateAction } from "react"; /** * Sync status types for series synchronization. * - 'server-only': Series exists only on server, needs download * - 'local-only': Series exists only locally, needs upload * - 'to-sync-from-server': Series has newer data on server * - 'to-sync-to-server': Series has newer data locally * - 'synced': Series is synchronized between server and local */ export type SeriesSyncType = 'server-only' | 'local-only' | 'to-sync-from-server' | 'to-sync-to-server' | 'synced'; export interface SeriesSyncContextProps { serverSyncedSeries: SyncedSeries[]; localSyncedSeries: SyncedSeries[]; seriesToSyncFromServer: SeriesSyncCompare[]; seriesToSyncToServer: SeriesSyncCompare[]; setServerSyncedSeries: Dispatch>; setLocalSyncedSeries: Dispatch>; setServerOnlySeries: Dispatch>; setLocalOnlySeries: Dispatch>; setSeriesToSyncFromServer: Dispatch>; setSeriesToSyncToServer: Dispatch>; serverOnlySeries: SyncedSeries[]; localOnlySeries: SyncedSeries[]; } export const SeriesSyncContext: Context = createContext({ serverSyncedSeries: [], localSyncedSeries: [], seriesToSyncFromServer: [], seriesToSyncToServer: [], setServerSyncedSeries: (): void => {}, setLocalSyncedSeries: (): void => {}, setServerOnlySeries: (): void => {}, setLocalOnlySeries: (): void => {}, setSeriesToSyncFromServer: (): void => {}, setSeriesToSyncToServer: (): void => {}, serverOnlySeries: [], localOnlySeries: [] });