This repository has been archived on 2026-07-21. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
cloud-reader/docs/frontend/014-library-reading-progress.md
T
crisleo94 6b4c0c43f8 feat: uv config other feats
- add uv configuration for the backend
- update frontend to make auth work
- add new auth endpoints
- add bookmars feat
- add reader feat
2026-06-03 22:06:01 -05:00

1.7 KiB
Raw Blame History

014 — Library reading progress badges

Status: Implemented
Created: 2026-06-04

Objective

Show accurate reading state on library book cards using saved EPUB progress instead of always displaying "Want to Read" (Quiero leer).

Data source

  • GET /api/books/ebooks/ returns progress (0100) from ReadingProgress.current_position via EBookListSerializer.get_progress.
  • Progress is updated by the web reader (useEpubReaderPATCH .../progress/).

Display rules

Progress opened Badge Cover extra
null or 0 false Want to Read
0 true Opened
198 Reading · N% Green progress bar on cover
≥ 99 Finished

Opened is set when the reader first displays (CFI saved, 0% progress). Turning pages moves to Reading.

Threshold constant: FINISHED_PROGRESS_THRESHOLD = 99 in frontend/src/utils/libraryStatus.ts.

Frontend changes

File Change
utils/libraryStatus.ts deriveReadingStatus, normalizeProgressPercent
pages/Library.tsx Map API progress → status; badge labels; client-side status filter
locales/en-US.ts, es-ES.ts library.readingStatus.readingWithProgress
pages/Library.module.css Cover progress bar styles

Status filter

The reading-status filter in the library panel now filters client-side by derived status (want_to_read, reading, finished).

Verification

  1. New upload → Want to Read / Quiero leer
  2. Partial read → Reading · N% + progress bar
  3. Near end (≥ 99%) → Finished / Terminado
  4. Filters by Leyendo / Terminado work as expected