Commit Graph
56 Commits
Author SHA1 Message Date
XingfenD 395be9688d refactor(frontend): remove ui.ts/icons.tsx and all rd-* legacy classes (B5) 2026-09-16 17:53:51 +08:00
XingfenD 28d8587e71 feat(frontend): shelf reading stats card + session tracking (B4) 2026-09-16 17:49:12 +08:00
XingfenD 4767ee7fec refactor(frontend): PDF reader chrome to shadcn (B4) 2026-09-16 17:43:51 +08:00
XingfenD 8831a9b277 feat(frontend): EPUB typography themes + chrome migration (B3) 2026-09-16 17:41:35 +08:00
XingfenD 1004daf821 feat(frontend): text reader search + typography, chrome migration (B2) 2026-09-16 16:58:39 +08:00
XingfenD 74e5e9d5fe feat(frontend): in-book text search core (TDD) 2026-09-16 16:51:36 +08:00
XingfenD 174c498757 test(frontend): CBZ page-mode component test + e2e mode/RTL smoke (B1) 2026-09-16 16:50:55 +08:00
XingfenD 26aafb3f53 feat(frontend): CBZ page/spread modes + RTL, chrome migration (B1) 2026-09-16 16:20:08 +08:00
XingfenD cea2414371 refactor(frontend): shared reader chrome to shadcn/radix (header, nav Sheet, bookmarks) 2026-09-16 15:46:07 +08:00
XingfenD 1f9d7e7572 feat(frontend): cbz page/spread view math (TDD) 2026-09-16 15:22:59 +08:00
XingfenD 996f492083 feat(frontend): reading stats store (TDD) + session heartbeat hook (B0) 2026-09-16 15:22:38 +08:00
XingfenD 6aefe62a9f feat(frontend): unified reader settings bar with theme linkage (B0) 2026-09-16 15:20:18 +08:00
XingfenD 8283d66db6 feat(frontend): shadcn sheet/tabs/slider primitives (B0) 2026-09-16 15:17:26 +08:00
XingfenD 655b77c2b7 feat(frontend): reading theme token group + useGlobalDark for auto linkage (B0) 2026-09-16 15:15:53 +08:00
XingfenD 64cc293878 feat(frontend): readerPrefs v2 unified structure (TDD) 2026-09-16 15:15:08 +08:00
XingfenD 9c6339d35e test(frontend): e2e main flow (login→shelf→cbz→bookmark→logout) + axe scans 2026-09-15 17:29:20 +08:00
XingfenD a3755bcfab test(frontend): sample component tests for button/dialog/theme-toggle (B2) 2026-09-15 11:54:56 +08:00
XingfenD a427aa1c4a fix(frontend): resolve all eslint errors to zero (B1) 2026-09-15 11:39:21 +08:00
XingfenD 29167d3cea style(frontend): prettier baseline format (no logic change) 2026-09-15 11:27:54 +08:00
XingfenD 2e43cb2423 fix(web): stop CBZ reader snapping/bouncing at chapter end on mixed-orientation books 2026-09-08 22:42:05 +08:00
XingfenD fd227c1f00 feat(web): table-style 库管理, admin entries under avatar 系统管理, shelf-view upload button 2026-09-08 21:45:03 +08:00
XingfenD 3178c2802f refactor(web): extract prefetch slider into reusable RdSlider component 2026-09-08 21:31:20 +08:00
XingfenD 472e58bec9 fix(web): unify 更多 menu text size, add 0-3 tick anchors under prefetch slider 2026-09-08 21:30:26 +08:00
XingfenD d2c852d6f0 feat(web): iconify reader chrome, move 连读/预读 into 更多 menu with slider 2026-09-08 21:29:01 +08:00
XingfenD 9c2b7e2074 feat(web): collapse reader toc/bookmark buttons into single 导航 toolbar button 2026-09-08 21:11:16 +08:00
XingfenD 48161ea1ff feat(web): unify reader TOC and bookmarks into one left nav drawer with tabs 2026-09-08 21:08:42 +08:00
XingfenD 6fbe3b0794 fix(web): active lib highlight, rail a11y names, card focus ring, AA accent + destructive tokens, touch-reachable menu, brand wordmark, chrome unify 2026-09-08 20:37:20 +08:00
XingfenD 7727baa25b fix(web): theme menu items fire on keyboard select (onSelect) 2026-09-08 19:19:45 +08:00
XingfenD dcaf502de6 feat(ui): admin pages on shadcn table/card/alert-dialog; drop TopBar, trim icons/ui.ts to reader-compat surface 2026-09-08 19:14:41 +08:00
XingfenD 273f35a42f fix(web): shelf search debounce merges against live searchParams (no lost sort/group clicks) 2026-09-08 19:08:05 +08:00
XingfenD b1c0db6c03 feat(ui): shelf rebuilt — sticky toolbar (search/sort/group in URL), rail, menu cards, alert-dialog delete 2026-09-08 18:58:16 +08:00
XingfenD d9e9e95ece feat(ui): login rebuilt on shadcn card/label/input, theme toggle available pre-auth 2026-09-08 17:47:17 +08:00
XingfenD 52e95a48d8 fix(ui): gate app sidebar to md+ and use onSelect for logout (keyboard path) 2026-09-08 17:41:29 +08:00
XingfenD 7957e5cee5 feat(ui): AppShell layout route — desktop rail, tablet icon rail, mobile tabs, theme toggle 2026-09-08 17:35:14 +08:00
XingfenD 913f3286bb feat(lib): shelf sort/section pure helpers + formatSize extraction, table tests 2026-09-08 17:29:07 +08:00
XingfenD 03bc537308 feat(ui): semantic light/dark tokens, ThemeProvider with FOUC guard, token-restyle Toaster/Cover 2026-09-08 17:17:44 +08:00
XingfenD 87b7545a94 feat(ui): shadcn/radix toolchain — deps, @ alias, cn, generated primitives 2026-09-08 17:07:28 +08:00
XingfenD 2721df8ea9 fix(web): upload toast always showed 0 files (live FileList read after input reset); snapshot before upload 2026-09-08 16:22:12 +08:00
XingfenD e5dacc0a77 fix(cbz): clamp locked cur at chapter end, hide 连读 on flat packs, silent restore, tighten prefetch storage 2026-09-08 15:28:27 +08:00
XingfenD 60c4ccf26f fix(cbz): window-relative scroll geometry locks head boundary; default prefetch 2 when key absent 2026-09-08 15:15:42 +08:00
XingfenD f63b639f64 feat(cbz): chapter-scoped continuous reading — lock scroll at chapter end, screen paging, prefetch next N chapters; drop 连读/整页/适高 modes 2026-09-08 15:01:28 +08:00
XingfenD cd251b940c feat(cbz): pure chapter-window helpers (chapterIndexAt/chapterWin) with table tests 2026-09-08 14:56:46 +08:00
XingfenD ec3f2c587e feat(reader): remove admin delete button from reader header; shelf card hover remains the only delete entry 2026-09-08 13:08:46 +08:00
XingfenD a43b73dcef fix(cbz): attach resize observer via callback ref + drop vh from scroll-mode geometry deps — fixes constant per-page gaps and refetch storm on mobile 2026-09-08 13:05:58 +08:00
XingfenD 32b9d3a136 feat(ui): content-first shelf redesign — responsive cover grid, hover overlays, format badges, skeletons, sticky blurred top bar, brand login, SVG icon set, animated toasts 2026-09-08 13:05:40 +08:00
XingfenD d989668650 feat(bookmarks): shared useBookmarks panel + wired into all four readers 2026-09-08 01:06:39 +08:00
XingfenD b2c5c4a445 feat(bookmarks): client plumbing — saver capture + bookmark api 2026-09-08 01:04:44 +08:00
XingfenD b8da9fd92e feat(cbz): adapt reader to real archive structure — PageIndex skips macOS junk (__MACOSX/ and ._ AppleDouble were polluting pages with 163-byte blacks), pages endpoint derives chapters[{title,start}] from folder layout, imageless zip now lands state=error instead of an empty reader, CbzReader gains 目录 sidebar + prev/next chapter (TextReader pattern, rd-* classes); pagesidx cache key bumped for one-time invalidation; e2e on 311MB 調教開關:第二季.zip: 15048→7524 real pages, 52 chapters, all JPEGs 2026-09-08 00:22:13 +08:00
XingfenD 7d650107d2 feat(upload): resumable chunked upload protocol for large files — init(parts≤32MB)/status/complete endpoints with fingerprint-derived deterministic uploadId (same file resumes, no restart), sessions in BOOKS_DIR/.uploads with 24h sweep, frontend uploadBook auto-switches >16MB to 8MB parts (retry x3 in place, skip received); oversize single POST now reports honest 413 too_large instead of "multipart field 'file' required" (was MaxBytesReader abort mislabeled); UPLOAD_MAX_MB wired into both compose stacks (cap total, .env.example 2048), nginx body limit drops to 32m; testCfg limit 1MB, CJK/fullwidth-colon filename proven unaffected; e2e verified with 311MB real file (39 parts, sha1 match) 2026-09-07 23:56:40 +08:00
XingfenD c6dfb92c76 fix(cbz): smooth scrollbar/slider dragging — rAF-coalesce scroll handler, idle-debounced prefetch, frame-batched height corrections, PageHeights.setEst converges unseen pages to the first measured page size, page slider seeks instantly while scrubbing (no per-notch smooth-animation restart); restore lost ### Fixed header in changelog 2026-09-07 23:13:04 +08:00