* [Tooling] Create script to update dependencies
* Lock dependency versions
* Update dependencies
Wait for eslint related dependencies to be compatible with v9
* 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
* [Codegen] Update generated files
* Use new "unbindTrack" mutation
* Add option to delete remote track on unbind
* [VersionMapping] Require server version "r1510" for preview
In the reader the preloaded page requests were triggered before the actual page got rendered and thus, the image request of the rendered page had to wait for all the preloaded images to finish
Prevent exhausting the available concurrent requests to the same domain by the browser with just image requests.
This prevents e.g. when browsing a slow source from having 6 concurrent image requests and having to wait for the next page request until one of those requests has finished
* Use "fetch" instead of "axios"
Axios does not support prioritizing requests
* Deprioritize image requests
The browser requests images (<img>) with low priority by default.
Due to switching to loading images via axios (f852ce70e7), the image requests had the same priority as other requests and thus blocked e.g. xhr requests
* Use request manager to preload images in DoublePagedPager
Was forgotten to update along with f852ce70e7
The requests for the preload also never got aborted
* Revoke object urls after load
* Remove unused "downloadAhead" function
* [Codegen] Update generated files
* Add "VUI" as webui flavor
* Add info about changing the webUI channel or flavor
In case the fetch timestamp of a manga changed, it's possible that the thumbnail has changed as well, thus, the currently cached image should be ignored
* Trigger download ahead while reading client side
* Trigger download ahead while reading earlier
Download ahead was only triggered once the chapter got marked as read
* Optionally ignore dupe chapters for download ahead
* Consider current chapters scanlator for dupe check
* Update download ahead related settings
- add new metadata setting for download ahead limit
- previous setting
- rename
- update usage (auto download new chapters limit)
* Select chapter to auto delete while reading depending on ignore dupe setting
Currently, the n-th to last chapter always got deleted ignoring if "ignore dupes" setting was enabled or not.
* Only auto delete chapter while reading if it is read
In case not the last read but the n-th to last read chapter should get auto deleted while reading, it currently just got deleted ignoring if it has been read or not.
After installing/uninstalling/updating an extension all other extension were removed from the list besides the updated extension
Regression introduced with 506e0aa0e3
* Update extension list after installing external extension file
The cache was never updated after the installation
* Make it possible to install external extension while having an empty list
* Show toasts while having an empty extension list
* Use correct extension id
* Update extension action after manual file installation
When installing an external extension the action button did not get updated due to this being an internal state of the ExtensionCard.
By including this in the key, it gets ensured that the component will get correctly updated
There seems to be cases where the connection is lost without the client being able to reconnect (e.g. active subscription -> system hibernation -> waking up system => not receiving any messages anymore).
* Refetch categories after updating a manga
After adding/removing a manga to/from the library, the categories did not update.
* Include manga categories int the manga update mutation response
* Create permanent subscriptions
The subscriptions have to be permanently open, otherwise, the cache gets outdated.
E.g. in case a view is open, which does not subscribe to the download updates, finished downloads are never received and thus, data of existing chapters/mangas in the cache get outdated
* [Codegen][Tool] Get latest data from cache for automatic chapter deletion after reading
The manga chapters query is on "standby" to prevent the reader from rerender in case the underlying query data updates, which would cause the reader to jump back to the beginning of the last read page.
Thus, when checking if the chapter should be automatically deleted, the data from the query can't be used, since it is outdated.
* Extract chapter actions into "Chapters"
* Extract chapter action menu into component
* Rename "SelectionFABActionItem" to "MenuItem"
* Decouple "MenuItem" from "SelectionFAB"
* Use "MenuItem" in "ActionMenus"
* Merge chapter action menus
* Simplify chapter "mark as read" action
It's currently not possible to filter out non library mangas from the mangas field of categories, thus, the totalCount of mangas in a category might be greater than what is actually displayed in the library.
* Extend "IMangaGridProps" from "DefaultGridProps"
* Move library manga filtering into hook
* Add logic to select mangas
* Add manga actions
* Remove cache only policy for category mangas
Unclear why this was added
* Prevent SelectionFAB from being hidden by the mobile footer
On e.g. the library page, the footer is visible and thus, the fab was not completely visible
* Update categories of manga only after clicking "OK"
Previously, selecting a category resulted in an immediate mutation.
To be able to reuse the "CategorySelect" component to change the categories of multiple mangas at once, this behaviour is not suited.
* Add action to change categories of multiple mangas
* Cancel selection mode after removal from library
The mangas would still be selected and other action could get performed. However, this should only be possible for mangas that are in the library
* Remove unintentionally added console log
Accidentally added with 980da657d9
E.g. in case a manga was already loaded through the category mangas query, the query for that specific manga should not run against the server if it hasn't been executed before
* Add missing translations keys
* [Codegen] Update to latest server schema changes
* [VersionMapping] Require server version "r1431" for preview
* Rename "deleteChaptersAutoMarkedRead" metadata setting
* Add more options to auto delete chapters while reading
Makes it possible to delete the last to fifth to last read chapter instead of only being able to delete the last read chapter