Commit Graph
255 Commits
Author SHA1 Message Date
schroda 30fd8b0fca Feature/support new tachiyomi backup file extension (#430)
* [Codegen] Fix restore backup mutation/query

The server doesn't support nested objects for file uploads

* Support new tachiyomi backup extension
2023-10-29 01:45:08 +02:00
schroda 5a5b12a9e1 [ESLint] Prefer named exports (#427) 2023-10-28 00:32:02 +02:00
schroda 68e7b4b16d Feature/library global update exclude manga with state (#281)
* Extract global update settings

* Add option to exclude mangas with specific state from global update
2023-10-27 23:39:05 +02:00
schroda 2ad9ccd9bd Use gql for loading default category mangas 2023-10-27 20:23:47 +02:00
schroda b6382bb33a Load only category mangas that are in the library 2023-10-27 20:23:47 +02:00
schroda e2fed69c90 Optimistically refresh categories on reordering 2023-10-27 20:23:46 +02:00
schroda b7e1afd4f4 Update refetching queries and evicting cache data 2023-10-27 20:23:46 +02:00
schroda 5263a1102c Rename "doRequestNew" to "doRequest" 2023-10-27 20:23:46 +02:00
schroda fbcc1fb91a Add optional options arg to all requests 2023-10-27 20:23:45 +02:00
schroda d3e15e9d3b Use gql for "subscriptions" 2023-10-27 20:23:45 +02:00
schroda b79fbcf71d Setup graphql subscriptions 2023-10-27 20:23:45 +02:00
schroda 6a1c302e45 Remove SWR 2023-10-27 20:23:44 +02:00
schroda 09f48c2c17 Use gql for "backups" 2023-10-27 20:23:44 +02:00
schroda e2f34f1f47 Use gql for "fetchMore" workaround
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
2023-10-27 20:23:44 +02:00
schroda aad87463f3 [Codegen] Use gql for "loading chapters" 2023-10-27 20:23:44 +02:00
schroda 78049282a7 Use gql for "sources" - preferences 2023-10-27 20:23:05 +02:00
schroda 12dd973179 Use gql for "mangas" VI - source mangas filter 2023-10-27 20:23:05 +02:00
schroda 3297c7d96c Use gql for "mangas" V - update manga categories 2023-10-27 20:23:05 +02:00
schroda 87aef85683 Use gql for "mangas" IV - source mangas popular/latest 2023-10-27 20:23:04 +02:00
schroda 0a73496cba Use gql for "mangas" III - global search 2023-10-27 20:23:04 +02:00
schroda af9d49e5e9 Use gql for "mangas" II - category mangas 2023-10-27 20:23:04 +02:00
schroda 89dc053f00 Use gql for "mangas" I - get manga 2023-10-27 20:23:04 +02:00
schroda a5b4b95bce Use gql for "updater" 2023-10-27 20:23:03 +02:00
schroda 222f8f5c9b Use gql for "downloader" 2023-10-27 20:23:03 +02:00
schroda ca18e750bf Use gql for "categories" 2023-10-27 20:23:03 +02:00
schroda f0d55c01c8 Use gql for "updating chapters" 2023-10-27 20:23:03 +02:00
schroda c75e184c57 Use gql for "updating mangas" 2023-10-27 20:23:02 +02:00
schroda e1f338d013 Use gql for "sources" 2023-10-27 20:23:02 +02:00
schroda 4a80e18cd0 Use gql for "extensions" 2023-10-27 20:23:02 +02:00
schroda 81cfeedbba Use gql for "checkForUpdate" 2023-10-27 20:23:02 +02:00
schroda 59468bc568 Use gql for "about" 2023-10-27 20:23:01 +02:00
schroda 80cb06dfd5 Use gql for "global metadata" 2023-10-27 20:23:01 +02:00
schroda 181eb6c811 Add graphql logic to RequestManager 2023-10-27 20:23:01 +02:00
schroda 0ee47c872b Introduce "BaseClient" 2023-10-27 20:23:01 +02:00
schroda a0b686497f Move "RestClient" in sub folder 2023-10-27 20:23:00 +02:00
schroda bffc1669e2 Move "RequestManager" in sub folder 2023-10-27 20:23:00 +02:00
schroda 1c794c24b5 Setup intellij "GraphQL" plugin 2023-10-27 20:23:00 +02:00
schroda 87ddf2f844 [Codegen] Generate files
Even if they are generated files, they should be checked-in so that it's possible to check out an old commit and still have the same files as they were at the time the commit was created.
In case they wouldn't be checked-in and the schema has changed in the meantime, there is no possible way to build the same generated files anymore
2023-10-27 20:22:56 +02:00
schroda 55c1c51edd Create queries, mutations and subscriptions 2023-10-27 20:18:37 +02:00
schroda 48fe8d23e9 Fix/vite tsconfig setup (#404)
* 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
2023-08-14 21:43:06 +02:00
schroda cc4bf7bb32 Fix initial infinite swr request for pages > 1 (#367)
In case more than 1 page was requested for the initial request, there was a problem in case the first page already had no results.
In that case the request for the second page always returned with the "isLoadMore" and "isLoading" flag set to true.
Thus, incorrectly indicating that the request is still active.
The "actual" request was already finished, but internally the "isLoadMore" flag was set incorrectly due to not considering if an actual request is active.
2023-06-16 00:14:22 +02:00
schroda 21174dc04a Add the option to ignore SWR stale data (#356) 2023-06-08 13:40:50 +02:00
schroda 4b83ccc889 Feature/use alias for imports (#352)
* Use alias "@" for imports

* Use alias "@" for imports - Fix imports

* Use alias "@" for imports - Prevent faulty "import/extensions" linting issue

For some reason the rule throws an error for alias imports

* Use alias "@" for imports - Update "no-relative-imports" eslint rule
2023-06-05 01:42:39 +02:00
schroda 61975b5c49 Feature/update dependency react to v18.x (#346)
* Update dependency "react" to v18.x

Update to v18.2.0

* Update dependency "react" to v18.x - Fix some dependency version issue

Something caused weird tsc issues, most likely a version mismatch since it got fixed by doing a clean install (deleting node_modules folder, yarn.lock and clearing the cache) of the dependencies

* Update dependency "react" to v18.x - Fix "i18n" tsc issues

* Update dependency "react" to v18.x - Fix tsc issue

Typography can only have a single child

* Update dependency "react" to v18.x - Prevent build warning

TODO: migrate to Vite

Gets used without being declared as a dependency.
Since CRA is unmaintained this will not get fixed.

* Update dependency "react" to v18.x - Use "createRoot"

* Update dependency "react" to v18.x - Fix dnd in strict mode
2023-06-04 21:40:04 +02:00
schroda 0fb204f141 Feature/request manager remove get client usage (#325)
* Remove "getClient" usage from "metadata" util

* Remove "getClient" usage from "useRefreshManga" hook

* Remove "getClient" usage from "isDupChapter" util function

* Use correct endpoint for setting category metadata

"/meta" suffix was missing from url

* Use correct http method for updating manga metadata
2023-06-04 00:50:58 +02:00
schroda 207a87f3e9 Fix import backup file request (#326)
The file wasn't send correctly due to converting it to a string.
2023-06-04 00:32:08 +02:00
schroda eaa8392789 Fix axios requests (#324)
The response was the expected data and not the actual axios response.
Thus, there was no "data" property and trying to use it could lead to errors like e.g. TypeErrors.
2023-06-04 00:30:48 +02:00
schroda 46a7ff6e3b Feature/refactor source mangas screen (#314)
* Refactor "SourceMangas"

* Refactor "SourceMangas" - Show loading placeholder on filter reset or submit

Due to the url being the same for all "filter requests" the loading state doesn't get changed by SWR.
Instead, only the "isValidating" state gets updated.

* Refactor "SourceMangas" - Update routing

* Refactor "SourceMangas" - Prevent duplicated mangas in grid

There is a possibility that the "latest" endpoint returns the same manga on different pages

* Always set the toolbar content on the manga page

"setAction" wasn't called on the manga page, thus, in case the previous page didn't unset the action, it never got unset

* Rename source content type "Browse" to "Popular"
2023-05-28 12:16:06 +02:00
schroda f852255d82 Add additional info about SWR infinite load to response (#321)
The SWR response only has "isLoading" and "isValidating".
"isLoading" only indicates the initial load.
For every subsequent load, only "isValidating" gets set to true.
2023-05-28 02:18:23 +02:00
schroda 0d36d2dcfb Feature/request manager make requests abortable (#316)
* Make requests abortable

* Make requests abortable - Fix usage
2023-05-23 13:27:38 +02:00