Skip to content

feat: add bookshelf tab with folder management#5

Open
logan676 wants to merge 2 commits intomainfrom
feature/bookshelf
Open

feat: add bookshelf tab with folder management#5
logan676 wants to merge 2 commits intomainfrom
feature/bookshelf

Conversation

@logan676
Copy link
Member

Summary

  • 新增"书架"Tab(第 2 位,书城与有声书之间)
  • GRDB 本地持久化(BookshelfFolder + BookshelfItem 两张表)
  • 网格/列表视图切换,文件夹管理,批量操作
  • 书籍详情页"加入书架"按钮
  • 14 种语言本地化(30 个 key)
  • API endpoints 定义(云同步待后端就绪后启用)

New Files (10)

  • BookshelfRecord / BookshelfDAO / BookshelfManager
  • BookshelfView / BookshelfEmptyView / BookshelfFolderView
  • BookshelfGridItem / BookshelfListItem / BookshelfFolderCard / BookshelfMoveSheet

Modified Files (7)

  • ContentView (插入 Tab) / DeepLinkRouter / APIEndpoints
  • Migrations (v5) / BookDetailView / Localizable.xcstrings / project.pbxproj

Test plan

  • App builds successfully
  • 书架 Tab 显示在第 2 位
  • 创建/重命名/删除文件夹
  • 添加/移除书籍到书架
  • 网格与列表视图切换
  • 书籍详情页"加入书架"按钮正常
  • 空书架引导页显示

- Add new Bookshelf tab (position 1) between Bookstore and Audiobook
- GRDB-backed persistence with folders and items tables (migration v5)
- Grid/list display modes with sort options (manual, recent, title, author)
- Folder creation, rename, delete with cascading item cleanup
- Batch select, move, and remove operations
- Add-to-bookshelf button on BookDetailView action bar
- Context menus for move-to-folder and remove actions
- Empty state with tutorial tip cards
- Deep link support for bookshelf:// URL scheme
- Update tab indices: 0=Bookstore, 1=Bookshelf, 2=Audiobook, 3=Me
- Localized in 14 languages (en, zh-Hans, zh-Hant, ja, ko, es, fr, de, pt, ru, ar, id, tr, uk)
@logan676 logan676 force-pushed the feature/bookshelf branch from 0f53607 to 55576fd Compare March 23, 2026 03:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant