Files
ERitors-Scribe-Desktop/context/BooksSyncContext.ts
natreex a114592ac9 Add terms of use translations, sync detection, and refactor book components
- Introduced new translations for terms of use in French and English locales.
- Added sync status detection logic for books in `BookList` and `BookCard` components.
- Refactored `BookCard` to handle additional props and improve layout flexibility.
- Enhanced `TermsOfUse` component with complete localization support and refuse functionality.
- Updated data decryption logic in Rust services to handle optional fields and additional metadata consistently.
- Improved offline/online synchronization workflows with extended context properties.
2026-03-23 11:56:35 -04:00

35 lines
1.4 KiB
TypeScript

import {BookSyncCompare, SyncedBook} from "@/lib/types/synced-book";
import {Context, createContext, Dispatch, SetStateAction} from "react";
export type SyncType = 'server-only' | 'local-only' | 'to-sync-from-server' | 'to-sync-to-server' | 'synced'
export interface BooksSyncContextProps {
serverSyncedBooks: SyncedBook[];
setServerSyncedBooks: Dispatch<SetStateAction<SyncedBook[]>>;
localSyncedBooks: SyncedBook[];
setLocalSyncedBooks: Dispatch<SetStateAction<SyncedBook[]>>;
booksToSyncFromServer: BookSyncCompare[];
setBooksToSyncFromServer: Dispatch<SetStateAction<BookSyncCompare[]>>;
booksToSyncToServer: BookSyncCompare[];
setBooksToSyncToServer: Dispatch<SetStateAction<BookSyncCompare[]>>;
setServerOnlyBooks: Dispatch<SetStateAction<SyncedBook[]>>;
setLocalOnlyBooks: Dispatch<SetStateAction<SyncedBook[]>>;
serverOnlyBooks: SyncedBook[];
localOnlyBooks: SyncedBook[];
}
export const BooksSyncContext: Context<BooksSyncContextProps> = createContext<BooksSyncContextProps>({
serverSyncedBooks: [],
setServerSyncedBooks: (): void => {},
localSyncedBooks: [],
setLocalSyncedBooks: (): void => {},
booksToSyncFromServer: [],
setBooksToSyncFromServer: (): void => {},
booksToSyncToServer: [],
setBooksToSyncToServer: (): void => {},
setServerOnlyBooks: (): void => {},
setLocalOnlyBooks: (): void => {},
serverOnlyBooks: [],
localOnlyBooks: []
});