Instead of checking if download ahead is required because not enough unread downloaded chapters existed, it just downloaded the next n unread undownloaded chapters
To prevent unnecessary re-renders.
The current grid state was stored in the session storage which then triggered an immediate re-render because the just saved snapshot got restored again
The current scroll position was preserved when changing the shown content type (browse, latest, filters) or when changing the filters.
Regression introduced with aab3e25031
* Route to "/" in case path is unknown
* Remove deprecated routes
"sources" and "extensions" were merged into "browse" but the routes were never removed, thus, the paths still matched and opened the components
Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (452 of 452 strings)
Translated using Weblate (Spanish): currently translated at 100.0% (452 of 452 strings)
Translated using Weblate (Italian): currently translated at 10.4% (47 of 451 strings)
Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (451 of 451 strings)
Translated using Weblate (Spanish): currently translated at 100.0% (451 of 451 strings)
Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (449 of 449 strings)
Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (449 of 449 strings)
Translated using Weblate (Turkish): currently translated at 1.3% (6 of 449 strings)
Translated using Weblate (Vietnamese): currently translated at 62.8% (282 of 449 strings)
Translated using Weblate (Japanese): currently translated at 4.4% (20 of 449 strings)
Added translation using Weblate (Turkish)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Traditional))
Chinese (Traditional): currently translated at 99.1% (445 of 449 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (449 of 449 strings)
Translations update from Hosted Weblate
Translated using Weblate (Spanish)
Spanish: currently translated at 100.0% (449 of 449 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (448 of 448 strings)
Translations update from Hosted Weblate
Translated using Weblate (Spanish)
Spanish: currently translated at 100.0% (448 of 448 strings)
Translations update from Hosted Weblate
Translated using Weblate (Japanese)
Japanese: currently translated at 3.1% (14 of 447 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (447 of 447 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 98.8% (442 of 447 strings)
Translations update from Hosted Weblate
Translated using Weblate (Spanish)
Spanish: currently translated at 100.0% (447 of 447 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (415 of 415 strings)
Translations update from Hosted Weblate
Translated using Weblate (French)
French: currently translated at 37.3% (155 of 415 strings)
Translations update from Hosted Weblate
Translated using Weblate (Spanish)
Spanish: currently translated at 100.0% (415 of 415 strings)
Translations update from Hosted Weblate
Translated using Weblate (Vietnamese)
Vietnamese: currently translated at 67.8% (281 of 414 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (414 of 414 strings)
Translations update from Hosted Weblate
Translated using Weblate (Spanish)
Spanish: currently translated at 100.0% (414 of 414 strings)
Translations update from Hosted Weblate
Translated using Weblate (Ukrainian)
Ukrainian: currently translated at 100.0% (413 of 413 strings)
Translations update from Hosted Weblate
Translated using Weblate (German)
German: currently translated at 47.9% (198 of 413 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (413 of 413 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (413 of 413 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Traditional))
Chinese (Traditional): currently translated at 97.0% (401 of 413 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 100.0% (413 of 413 strings)
Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))
Chinese (Simplified): currently translated at 98.0% (405 of 413 strings)
Co-authored-by: Axel C <definsitecristofer@gmail.com>
Co-authored-by: Danylo Gavrylenko <g.danylo228@gmail.com>
Co-authored-by: Efe Devirgen <efedevirgen@gmail.com>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: HugoLeBoennec <hugo.leboennec@viacesi.fr>
Co-authored-by: PandaKewt <chuminhtuan30306@gmail.com>
Co-authored-by: Roberto Palmese <robix.email@gmail.com>
Co-authored-by: Siamese <Siamese2250@users.noreply.hosted.weblate.org>
Co-authored-by: Son of the Rocks <sonoftherocks@web.de>
Co-authored-by: ZerOriSama <godarms2010@live.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: ji jo (roczz2887) <rocmoezhao@gmail.com>
Co-authored-by: m0eak <moeakyou@gmail.com>
Co-authored-by: plum7x <plumgift@hotmail.com>
Co-authored-by: tongxin lou <loutongxin1@gmail.com>
Co-authored-by: 坂田银时 <3199616102@qq.com>
Co-authored-by: 小楼一夜听春雨 <gr2066878693@gmail.com>
Co-authored-by: 清水汐音 <chenzhongjie19940725@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/de/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/es/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/fr/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/id/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/it/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/ja/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/tr/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/uk/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/vi/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hant/
Translation: Suwayomi/Suwayomi-WebUI
* Require "Theme" to be passed to "SxProps"
Decreases typescript performance otherwise
* Disallow "top" and "third-level" MUI imports
* Exclude "node_modules" in tsconfig
* [Tooling] Create script to update dependencies
* Lock dependency versions
* Update dependencies
Wait for eslint related dependencies to be compatible with v9
In case the migration search was started by clicking on a manga card from the migration page the manga title was not passed to the search and thus was missing from the page title
* Correctly update search string on location change
Regression introduced with aab3e25031
* Remove unnecessary usage of "useSessionStorage"
This did not add anything and made no sense
In case these settings were disabled, the other dependent settings were not editable.
This prevented them from being set up as needed before enabling them
In case some other app was served on the same domain which registered a service worker, this service worker was incorrectly used and never unregistered
* Extract CategorySelect usage into hook
* Extract logic to change manga in library state into hook
* Change manga in library state on long press when browsing source
* Update local storage functions
* Update local storage hooks
* Add session storage
* Improve storing virtuoso grid snapshot
* Use "useSyncExternalStore" for browser storage access
* Get rid of location replacements in "AppbarSearch"
Use session storage instead to prevent reloading the page all the time due to changing the location
* Get rid of location replacements in "SourceMangas"
Use session storage instead to prevent reloading the page all the time due to changing the location
Somehow the grid ref was undefined after the resize observer was already connected.
This should not be possible, so just disconnect the observer in case this still happens
Due to triggering the refresh in the TrackerActiveCard it was triggered everytime this component got rendered, which was also the case when closing the track search
* [IssueModerator] Improve un-removed "acknowledgment" section detection
* [IssueModerator] Check for invalid issue types in title
* [IssueModerator] Try to ensure short descriptive title
* [IssueModerator] Try to prevent questions in the title