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:
@@ -253,8 +253,8 @@ export default function BookList() {
|
||||
<div
|
||||
className="flex justify-between items-center w-full max-w-5xl mx-auto mb-6 px-6">
|
||||
<h2 className="text-3xl text-text-primary capitalize font-['ADLaM_Display'] flex items-center gap-3">
|
||||
<span key="icon" className="w-1 h-8 bg-primary rounded-full"></span>
|
||||
<span key="title">{category}</span>
|
||||
<span className="w-1 h-8 bg-primary rounded-full"></span>
|
||||
<span>{category}</span>
|
||||
</h2>
|
||||
<span
|
||||
className="text-muted text-lg font-medium bg-secondary/30 px-4 py-1.5 rounded-full">{books.length} {t("bookList.works")}</span>
|
||||
@@ -263,7 +263,7 @@ export default function BookList() {
|
||||
<div className="flex flex-wrap justify-center items-start w-full px-4">
|
||||
{
|
||||
books.map((book: BookProps, idx) => (
|
||||
<div key={book.bookId}
|
||||
<div key={book.bookId || `book-${idx}`}
|
||||
{...(idx === 0 && {'data-guide': 'book-card'})}
|
||||
className={`w-full sm:w-1/3 md:w-1/4 lg:w-1/5 xl:w-1/6 p-2 box-border ${User.guideTourDone(session.user?.guideTour || [], 'new-first-book') && 'mb-[200px]'}`}>
|
||||
<BookCard book={book}
|
||||
|
||||
Reference in New Issue
Block a user