Add offline mode logic for main chapters and refine IPC handlers

- Integrate `OfflineContext` into `MainChapter` and related components to handle offline scenarios for chapter operations.
- Add conditional logic to toggle between server API requests and offline IPC handlers (`db:chapter:add`, `db:chapter:remove`).
- Extend `GET /book/story` endpoint to include `mainChapter` data.
- Refactor IPC handlers for chapters to accept structured data arguments with stricter typings.
- Update frontend key assignments for `BookList` component for improved rendering stability.
This commit is contained in:
natreex
2025-11-26 23:17:25 -05:00
parent 23f1592c22
commit db2c88a42d
4 changed files with 42 additions and 30 deletions

View File

@@ -115,10 +115,13 @@ ipcMain.handle('db:chapter:add', createHandler<AddChapterData, string>(
);
// DELETE /chapter/remove - Remove chapter
ipcMain.handle('db:chapter:remove', createHandler<string, boolean>(
function(userId: string, chapterId: string, lang: 'fr' | 'en'): boolean {
console.log(userId,chapterId,lang)
return Chapter.removeChapter(userId, chapterId, lang);
interface RemoveChapterData {
chapterId: string;
bookId?: string;
}
ipcMain.handle('db:chapter:remove', createHandler<RemoveChapterData, boolean>(
function(userId: string, data: RemoveChapterData, lang: 'fr' | 'en'): boolean {
return Chapter.removeChapter(userId, data.chapterId, lang);
}
)
);