In case the chapter is not downloaded, the chapters pages have to be always fetched, since there is a possibility, that the chapter data is so old, that the available pages data is outdated.
* [Codegen] Update settings fragment
* Extract logic to change a number setting
* Show slider for global update interval setting
* Add download settings
Was only updated after clicking "OK" once.
This was caused due only updating the language selection once the app language was changed or in case the selected languages (after clicking "OK") changed
The "loading" and "networkStatus" state do not get correctly updated when e.g. calling "fetchMore".
This seems to happen because an abort signal is passed on every hook call.
Due to passing this signal, the passed args to the hook change, and thus, it looks like apollo considers this a completely new hook call.
By preventing the signal from being passed, the hook correctly updates these states, but, on the contrary, it is not possible to abort these requests anymore
* added toggle for doublespreads
* changing pages works as intended
* undid package.json changes
* deleted packege lock json
* curPage changes when changing invertDoublePage
* changed yarn.lock
* it switches better now
* fixed formatting
* changed it to offset first page
* fixed flipping when switching
* offset first page hides when double page is not enabled
* removed uncreachable line
* Use "create-vite"s tsconfig files setup
The previous tsconfig file caused issues with vite throwing "missing identifiers of modules" errors
* Remove unused React imports
Starting with React 17 the nex JSX transform is being used
* Update i18next to v23.x
Update to version 23.2.7
* Use new "ParseKeys" (old: "TFuncKey") type
* Remove unnecessary casts to string
Not needed anymore with the latest version
* Introduce local history stack
To be able to know if the browser back navigation should be used, it is sometimes necessary to know which the previous page was.
E.g. it should not be used in case the current page is the manga page and the previous one is the reader.
* Handle cases where there is no previous page in the history stack
* Always use a button for the navigation back button
* Navigate from base route to library by replacing the current location
The base route should not be included in the history
* Move "onClick" handler to "ListItemButton" - LibrarySettings "global update categories"
Clicks were only handled on the button content leading to a small area around the content to not handle the clicks, thus, not opening the dialog
* Move "onClick" handler to "ListItemButton" - Settings "manga item width"
Clicks were only handled on the button content leading to a small area around the content to not handle the clicks, thus, not opening the dialog
* Disable ssr by default for "useMediaQuery"
SSR would cause the hook to run once with default values and only after the first render with real values.
This can cause issue on rendering when depending on useMediaQuery results like in 8c129f2e08
* Virtualize manga grids
* Remove SourceMangas load more guard
Was required due to the previous load more trigger logic from the MangaGrid.
Due to using Virtuoso now, load more will be triggered only once when the bottom of the grid was reached and thus won't trigger multiple load more requests
* Remove old Library pagination
Pagination is handled by virtuoso, thus, the previous pagination can be removed
* Increase initial loaded pages to make infinite load work
virtuoso requires enough initial items to be rendered, so that actual virtualization takes effect, for it to fire "endReached"
* Prevent virtuoso grid scrollbar from jumping around
In case the items have a big height difference there is a bug where the scrollbar starts jumping around the moment these new items are rendered
* Restore scroll position
For some reason the UI jumps around when accessing "document.documentElement" during loading more items.
After the items are rendered the loading placeholder gets removed and the previous items jump to the bottom of the viewport.
* Limit manga grid titles to two lines
* Remove "last page" info from MangaGrid
Info is not needed. The only thing the MangaGrid has to do is to trigger a request to load more data