* Create "Categories" util class
* Only show add to library category selection in case categories exist
* Add edit categories button in select categories dialog
* Add option to disable add to library dialog to the dialog
* 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
* 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
In case "fit to page" was enabled, the styling got incorrectly applied to horizontal pages. Causing the pages to be small
Regression introduced with 15825fbe53
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.
The max-width, which is for a single page, was applied to each page of the double page reader, which resulted in both of them being able to take up 100% of the available width
* [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
* Fix reader width
The margin: auto on the Box container for the image was preventing 100% width
to actually mean 100%.
Now that 100% is actually possible, I think fitPageToWindow makes more
sense as a default. Additionally, since the image can fill 100% of the
page, it can cover the ReaderNavBar, so set the z-index of the
ReaderNavBar so it's rendered on top of the image and clickable.
Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
* Support configuring reader width for DoublePage readers
Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
* Fix single page of DoublePageReader not being able to take up full width
In case the parent container is flex row, the container does not automatically take up 100% of the available width, thus, the page also was not able to take up 100% of the width
* Fix applying reader width to double pages
The set reader width can't be applied to each page of the double pages because otherwise it will already take up 100% of the available width with the setting only being at 50%.
Instead, the set width has to be divided by 2, so that both pages take up the set reader width
* Prevent double page spinner from being larger than 100% of the available width
* Update width styling of the page spinner
* Always center pages in the middle of the screen
* Take up full height fitting page to window height
---------
Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
* Prevent TypeError when deselecting items from a specific key
This was noticed when changing the categories of a manga to a category without any selected mangas, in this case, when trying to deselect a manga after changing the categories, a TypeError was thrown which resulted in a white screen
* Remove duplicates from the list of all selected ids
* Update state via setter
* Clear selection after disabling the library selection mode
* Remove console log
For a single manga the "mangaId" should be passed while "mangaIds" is empty, however, the "mangaIds" were passed as an empty array which caused an empty array of manga ids to be passed with the mutation
* page loading works and looks good now to make double page work with it
* Update double page spinner styling
* Render pages everytime the component gets rendered
- remove refs because they do not trigger a rerender
- remove initial render interval
- remove page rendering via portal
During the initial render nothing got rendered (pages or placeholder) because for that to happen, the images had to be loaded.
Thus, the loading placeholder never got shown.
* Enable skipping forward while pages are loading
---------
Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
* 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
* Merge "source" and "extension" screen for desktop
* Move "tab" related components into new folder
* Reuse "tab" components for "browse" screen
* Prevent extension list from being taller than 100% of the parents height
- remove margin - virtuoso has issues calculating the height otherwise
- change group title styling, fontSize caused issues
* Align "source" list group header with "extension"
* Remove bottom padding from "ExtensionCard"
* Move "GroupedVirtuoso" related components into folder
* Use "GroupedVirtuoso" for "extensions"
There was an issue with the height calculation of the virtuoso list, which apparently was caused by the conditional rendering of the group title and item as list items.
Due to this, while scrolling down, the virtuoso list caused an overflow, which rendered the scrollbar, which in turn caused the list items to shrink in width.
The end result of this was, that the list items "jumped" slightly on the initial render of the items, due to the scrollbar appearing and disappearing
* 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.