* Require "Theme" to be passed to "SxProps"
Decreases typescript performance otherwise
* Disallow "top" and "third-level" MUI imports
* Exclude "node_modules" in tsconfig
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
* 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
Basically, instead of updating the width of the image after clicking
`ok`, the width is adjusted live, which makes it easier to figure out
the right value for the manga being viewed.
While implementing this, I realized we can't update the backend every
time we re-render when `liveUpdate` is true, so I've updated the logic
for persisting settings to support skipping the API call to save the
settings in the backend, and only perform the API it when the user
clicks ok on the number setting.
Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
* Optionally prevent deletion and mutation of "MutableListSetting" items
* Save server metadata per device
This makes it possible to e.g. have different settings on a desktop and a smartphone.
* 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
* Add option to stretch small pages
In case "fit page to window" is enabled, small pages can be scaled up to the available width and height, while maintaining the aspect ratio
* Cleanup "imageStyle" function
* Remove unused "downloadAhead" function
* [Codegen] Update generated files
* Add "VUI" as webui flavor
* Add info about changing the webUI channel or flavor
* 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.
In case the webUI is hosted by the server the backup creation caused the app to navigate to the backup url which resulted in an empty page
Regression introduced with db5d3ff7c0
* [Codegen] Update to server changes
* Set "dialogTitle" by default to "settingTitle" for "NumberSetting"
* Add FlareSolverr to settings
* [VersionMapping] Require server version "r1477" for preview
* Replace static strings with translation keys
* Move "TextSetting" to new folder
* Extract dialog of "TextSetting"
* Immediately show dialog when adding a list item
* Reuse "TextSettingProps" for "MutableListSetting"
* Add "placeholder" prop to "MutableListSetting"
* Prevent duplicates by default
* Clear dialog values on save
* Validate repo url
* 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.
* Validate backup before starting restore process
In case sources were missing, the user was never informed and thus, did not know which sources were required for all manga to work
* Reset file input after restoring
Otherwise, the same backup file can't be restored until the page gets refreshed/re-opened
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.
* Move "SearchSettings" into "LibrarySettings"
* Change property "setOpen" to "onClose" for "CategorySelect"
* Optionally show category selection when adding manga to library
* Update "ignore filters" translation
* Move "ignore_filters" setting to "metadataServerSettings"