feat: add Source filter to library filtering system (#1131)

* feat: add Source filter to library filtering system

Add a new Source filter section to the library options panel that allows
users to filter their library manga by source (e.g. MangaDex, MangaSee).

- Add hasSource to LibraryOptions type and category metadata
- Add source filtering logic in useGetVisibleLibraryMangas
- Add Source section with three-state checkboxes in filter UI
- Show loading spinner while source list loads
- Include source filter in active filter indicator

Closes #1057

* refactor: address review feedback for source filter

- Remove skip option, let query always run
- Use uniqBy from lodash/fp for deduplication
- Remove loading spinner (data available quickly)
- Wrap source section in length check

* docs: add source filter to changelog

---------

Co-authored-by: Copilot <noreply@github.com>
This commit is contained in:
Sean Smith
2026-07-20 15:09:06 -07:00
committed by GitHub
parent 98ee3d46c8
commit 8b8da30335
8 changed files with 58 additions and 3 deletions

View File

@@ -200,6 +200,9 @@ export const APP_METADATA: Record<
hasStatus: {
convert: convertToObject<LibraryOptions['hasStatus']>,
},
hasSource: {
convert: convertToObject<LibraryOptions['hasSource']>,
},
customThemes: {
convert: convertToObject<MetadataThemeSettings['customThemes']>,
},
@@ -440,6 +443,7 @@ export const GLOBAL_METADATA_KEYS: AppMetadataKeys[] = [
'hasDuplicateChapters',
'hasTrackerBinding',
'hasStatus',
'hasSource',
// sort
'sortBy',
'sortDesc',