- Deleted `CharacterComponent` and `CharacterDetail` files from the project. - Refactored related logic to improve code maintainability and reduce redundancy.
43 lines
1.9 KiB
TypeScript
43 lines
1.9 KiB
TypeScript
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<SetStateAction<SyncedSeries[]>>;
|
|
setLocalSyncedSeries: Dispatch<SetStateAction<SyncedSeries[]>>;
|
|
setServerOnlySeries: Dispatch<SetStateAction<SyncedSeries[]>>;
|
|
setLocalOnlySeries: Dispatch<SetStateAction<SyncedSeries[]>>;
|
|
setSeriesToSyncFromServer: Dispatch<SetStateAction<SeriesSyncCompare[]>>;
|
|
setSeriesToSyncToServer: Dispatch<SetStateAction<SeriesSyncCompare[]>>;
|
|
serverOnlySeries: SyncedSeries[];
|
|
localOnlySeries: SyncedSeries[];
|
|
}
|
|
|
|
export const SeriesSyncContext: Context<SeriesSyncContextProps> = createContext<SeriesSyncContextProps>({
|
|
serverSyncedSeries: [],
|
|
localSyncedSeries: [],
|
|
seriesToSyncFromServer: [],
|
|
seriesToSyncToServer: [],
|
|
setServerSyncedSeries: (): void => {},
|
|
setLocalSyncedSeries: (): void => {},
|
|
setServerOnlySeries: (): void => {},
|
|
setLocalOnlySeries: (): void => {},
|
|
setSeriesToSyncFromServer: (): void => {},
|
|
setSeriesToSyncToServer: (): void => {},
|
|
serverOnlySeries: [],
|
|
localOnlySeries: []
|
|
});
|