* Move "Server Address" setting to server settings
* Rename "ServerDirSetting" to "TextSetting"
* Use "TextSetting" for server address
* Reset value when closing the dialog
* Support passwords in "TextSetting"
* Add server settings
* Auto open search correctly in global search
* Update search input when navigating to previous/next location
* Revert: Navigate to previous page when canceling search
Has to many edge cases and fixing them would require a global history stack which gets saved in the location state.
This then would lead to the apps internal back navigation to be the same as the browsers which is not wanted, since you should not get moved deeper into the apps navigation when clicking the back button
* Correctly autofocus search input
Sometimes the autofocus did not work, since the input did not exist yet by the time the timeout was triggered
* Restore search input open state when navigation to previous/next location
* Restore search input focus when navigating to previous/next location
* Require search to be committed with enter
* Extract back navigation logic into hook
* Navigate to previous page when canceling search
This makes the search the next page in the history stack instead of making it the previous one
* Close and open search depending on the location and available query
* Navigate to previous page in case new query is empty
* Scroll up when clicking shift + space
* Add keyboard bindings to arrow up and down
Align scroll amount with using other keys like space, arrow right/left
* Add scroll inversion with shift to other key bindings
* Scroll per mouse dragging
* Show loading indicator for "NumberSetting"
* [i18n] Add lowercase interpolation format
* Add required dependencies for time settings
* Dynamically import dayjs locales for languages
* Add backup settings
* Handle sources that do not support revalidation
At least e-hentai is not able to handle out of order pagination requests.
E.g. in case the last request was for page 1 and the next one is for page 3, the result will be for page 2, because e-hentai just ignores the request page number and just returns the next page after the last fetched one.
* Optionally clear source browse cache when opening component
At least e-hentai is not able to handle out of order pagination requests.
The revalidation logic will cause exactly this.
Due to this, the revalidation for these sources is disabled.
To prevent an out of date cache, it gets cleared when routing to the source component
* Remove abort controller by default from requests
Apollo client is, for whatever reason, considering it a new hook call when passing an abort controller to be passed to the actual request.
On request failures this then causes infinite requests due to it being a new hook call.
* Move side effect into useEffect
This was missed and started causing issues after the changes of 60429d9d98544e1e49a112aacf77bdbb831740ec.
Due to the changes, the component did not re-render unnecessarily which caused the component not to re-render with the fetched data
* Reset fetching initial pages state
The state was never reset, thus, in case of an error, the initial pages fetch was never triggered again
When using the cached results, replace them with the latest cached data from apollo.
This will have the updated data, that was inserted from the manga update mutation
When using the cached results, replace them with the latest cached data from apollo.
This will have the updated data, that was inserted from the extension update mutation
The MUI Checkbox component has a z-index of 1, which causes it to register the mouse events instead of the "SelectionFAB" which is visually in front of it
* [Tooling] Fix "updateDeps" script
For some reason commands after "yarn outdated" did not get executed
* [Tooling] Show "outdated" info at end of "updateScript"
* Update dependencies
"apollo-upload-client" v18 requires migration to ts module "nodenext"
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
In case the first page was also the last page, there is no next page that can be fetched.
On large screens, where the initial pages to fetch are 2, this resulted in an endless loading screen
The default category is used as a fallback and should never be actually mapped to mangas in the database.
However, when using the update manga category mutation the server still creates this mapping, which then leads to issues with getting mangas for the default category
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