* Download next chapters when marking chapter as read while reading
* Add "auto delete chapter" settings
* Delete chapter after finished reading
* Delete chapters after marking them as read
* Improve "mark previous as read" action
Send only ids of chapters that are actually unread
* 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
* 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
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