* Update useGetVisibleLibraryMangas.ts
Begin implementation of random sort
* Update LibraryOptionsPanel.tsx
Added random sort option
* Update Library.types.ts
Adding random to LibrarySortMode types
* Moved sorting process to before filter
Changed the order of the sorting/filter process. Now sorts through entries before filtering them.
* Implementing Reviewer Feedback: Replacing Random Icon
Replaced icon with Replay icon from mui.
* Update SortRadioInput.tsx
Replaced random icon with replay icon from mui to replicate mihon functionality
* Fixed Formatting
* Update CHANGELOG.md
Added proposed changes from pull request.
* Update CHANGELOG.md
Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
---------
Co-authored-by: jburkh10 <jburkh10@terpmail.umd.edu>
Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
* 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>
In case the double page reading mode was used and the current page was a double page, the transition got messed up due to the page text wrapping and growing in height
GET_CATEGORIES_LIBRARY, GET_CATEGORIES_SETTINGS share the same query key in the cache. However, both select different fields.
When cleaning up the database in the library settings, the SETTINGS query is active and refetches due to the cache eviction.
This then wrote the query back into the cache pointing to the existing CategoryType fragments in the cache.
The problem was that the SETTINGS query selects fewer fields than the LIBRARY query.
Due to the query now existing again in the cache, the LIBRARY query was not refetched.
Instead, it used the cached category fragments, which still included the outdated LIBRARY fields from before the eviction
In case clearing the download queue caused the subscription to omit items, the received items did not get removed from the cache.
This resulted in the DownloadStateIndicator to show outdated download info.
The native language code returned by the browser could be a code that is not included in the defined ISOLanguages object. E.g. "en-GB" while the object only has "en".
This caused the "English" browse language to not be able to get selected as an allowed language.
* show only the last chapter red
* fix : case when a load has not enough different manga
* fix : problems with the load of chapters
* Fix "filteredOutAllItemsOfFetchedPage" determination
* Remove logic to load until scrollbar appears
`Virtuoso` (list) doesn't have the same issue as `GridVirtuoso`, i.e. `endReached` gets called on initial render in case there weren't enough items
* Increase history page size (50 -> 150)
Due to the new filtering, it can take forever to load the initial pages/next pages
* Use lodash "uniqBy" for filtering
* Update changelog
---------
Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
When resuming a migration search, it was possible that an entry search was partially done.
In this case, when retrying, the sources with search results were not retried.
If all retried source searches failed, it was incorrectly treated as if all source searches failed, since it only considers the actually executed search sources, which only included failed/pending sources.
Observers got disconnected and started again.
Since the images have already been rendered at this point of time, the mutation observer on the scroll element does not detect them anymore.
Thus, exiting image resizes were not observed anymore and did not trigger the preservation logic
This was only was noticeable in case the transition page was disabled.
Due to potential layout shifts and scrolling the initial page into view, the infinite chapter logic got triggered and loaded the previous chapter.
This is not a 100% guarantee that it won't happen, slow devices might still run into this issue
After the long press action, the set onClick action was triggered as well.
This caused issues like opening the manga page in the source browse page when adding the manga via a long press to the library
The previous/next chapter only ever preloaded the first page, ignoring available preload contingent.
I.e., if all leading/trailing pages of the current chapter were loaded, the reader did not keep preloading the previous/next chapters pages
When going to the source search from the global search, the manga card mode wasn't passed, which prevented a manga from getting selected as the migration destination
#1110