forked from akai/readest
c5a1a3afeb
* feat(opds): add facet navigation and quick catalog registration to header - Add an options dropdown in the header to navigate OPDS feed facets on compact viewports. - Implement an "Add to My Catalogs" dialog to save the current feed, inheriting credentials, headers, and config. - Render a standalone shortcut button in the header when no facets are present, hiding the dropdown. * fix(opds): scope window rounding to full route + guard duplicate add Reviewing the facet-navigation feature surfaced three issues in the quick-add flow and an unrelated window-rounding change: - Restore the standard full-screen-route rounding pattern on the OPDS browser. The header change had dropped the `isRoundedWindow` guard (rounding maximized/fullscreen windows leaves gaps at the edges) and switched to left-only corners (a docked-sidebar pattern). Match the library/auth/user/reader pages: `isRoundedWindow && window-border rounded-window`. - Guard "Add to My Catalogs" against re-adding a catalog whose URL is already saved. `addCatalog` dedups by contentId and would silently overwrite the existing entry while toasting "added successfully"; now it detects the duplicate via `findByUrl` and shows an info toast. - Replace `feed!.facets!` non-null assertions with optional chaining. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Huang Xin <chrox.huang@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>