Commit Graph
218 Commits
Author SHA1 Message Date
schroda 19962df378 Update "getMangasChapterIdsWithState" 2026-05-20 16:26:43 +02:00
schroda e944c6711e Sort browse migration manga selection by title 2026-05-16 02:37:47 +02:00
schroda 60b6a39bdc Update dependency "@graphql-codegen" 2026-05-15 20:41:14 +02:00
schroda 18c437d77b Handle http 429 errors 2026-05-13 05:11:41 +02:00
schroda c068f2fb35 Fix manga details not updating after refresh with partial data
Regression 0ed2e7c193
2026-05-02 14:42:32 +02:00
schroda 9440326b72 Require server settings and global metadata to be loaded 2026-04-27 15:57:33 +02:00
schroda 0ed2e7c193 Fix refreshing manga during migration search 2026-04-23 20:40:05 +02:00
schroda cc31f592cd Fix saving global metadata applied migration
The applied migration change never got stored on the server because the mutation got excluded due to incorrectly setting the "isMigration" flag to false.
This resulted in executing the missing migration everytime the metadata were read.

Regression 430939a47a
2026-04-07 15:16:09 +02:00
schroda d738de2c61 Fix missing available extension info in navbar
fixes #1076

With apollo v4 "refetchQueries" excludes queries with "cache-only" policy

Regression c6343e24a5
2026-03-22 00:30:34 +01:00
schroda 72af9d52d1 Update lint rules 2026-03-11 19:42:02 +01:00
schroda 5dda4304d9 Migrate to oxlint + oxfmt 2026-03-11 19:41:49 +01:00
schroda 22e1b6d224 Update dependency "eslint" to v9.x
v9.39.4
2026-03-10 21:41:50 +01:00
schroda c6343e24a5 Update dependency "apollo-client" to v4.x
v4.1.6
2026-03-10 01:02:12 +01:00
schroda 00d6350cee Optionally include client data during manga migration 2026-03-08 22:42:39 +01:00
schroda 430939a47a Update new "metas" mutations structure 2026-03-08 22:42:38 +01:00
schroda 0c12427020 Remove old metadata mutations 2026-03-08 22:42:37 +01:00
schroda 64df9a9489 Add new single multipurpose metadata update mutation 2026-03-08 22:40:47 +01:00
schroda 474b98abb5 Use new "metas" mutations 2026-03-08 22:40:45 +01:00
schroda 083586c567 Update graphql files structure 2025-12-22 14:00:44 +01:00
schroda 230dae83c3 Fix SourceMangas showing incorrect loading placeholder
After all pages had been loaded, the revalidation request of the first page caused the loading placeholder to not disappear anymore.
This was only a visual bug and did not affect the actual functionality.
2025-12-22 12:35:40 +01:00
schroda 30856f996d Always revalidate first page for local source browse requests
fixes #1041
2025-12-22 12:35:08 +01:00
Zeedifandschroda 84cfa6bea5 Update KOReader Sync settings (#1030)
* feat(settings): refactor and implement KOReader Sync settings page

Refactors the KOReader Sync settings section into its own dedicated page and implements the full connection and configuration flow.

The previous implementation in the main server settings was outdated and incomplete. This change aligns the frontend with the latest backend logic and provides a complete user experience.

Key changes include:
- Separated the UI into two states: a login form for initial connection and a configuration panel for existing connections.
- Implemented `connectKoSyncAccount` and `logoutKoSyncAccount` mutations to handle authentication with the KOReader Sync server.
- Updated the `SERVER_SETTINGS` GraphQL fragment to use the new `koreaderSyncStrategyForward` and `koreaderSyncStrategyBackward` fields, removing the deprecated `koreaderSyncStrategy`.
- Moved all KOReader Sync settings from the generic Server Settings page to a dedicated route at `/settings/koreader-sync`.
- Restructured and improved i18n keys for better clarity and consistency.

Ran `yarn gql:codegen` to regenerate GraphQL types and helpers.

* Extract credentials login into component

* Update to server changes and cleanup

---------

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
2025-12-06 19:59:39 +01:00
schroda 3dfb80a237 Fix image queue creation 2025-11-23 00:23:33 +01:00
schroda fe4bfd922e Queue image requests per source
If http protocol is h2 or newer, allow:
 - 5 requests per source
 - unlimited local source requests
2025-11-23 00:08:23 +01:00
schroda 890b304b4a Ignore source/extension, tracker icon and thumbnails requests from image queue
The server is not requesting these images through an extension; thus, it is not a problem to send them directly to the server since there is no problem of getting the server "stuck" due to extension rate limits.
2025-11-22 23:50:05 +01:00
schroda 9ed05f3fc0 Cache images via service worker
Improves the image request logic by making it possible to check if an image is cached.
In case an image is cached, it does not need to be put into the image queue because it won't be sent to the server.
2025-11-22 23:50:03 +01:00
schroda e5eda76ea7 Recreate ws client when receiving auth error message 2025-11-20 13:58:44 +01:00
schroda cdab741ce5 Replace missed occurrences with koration 2025-11-09 01:13:31 +01:00
schroda 490ebb5bde Restart subscriptions after token refresh
In case the connection got lost and the client reconnected again, there is a possibility that the auth token is expired. This will lead to the subscription to fail due to being unauthorized.
This, however, does not close the connection and the heartbeat messages are still being sent and received.
Thus, after refreshing the token, the connection is still alive but not authorized, which is the same as not having the connection open.
2025-11-07 12:09:36 +01:00
schroda 284c194ac3 Add "reset" functions to clients 2025-11-07 01:28:56 +01:00
schroda 8ac93ff3ff Recreate graphql ws client only as last resort
Try to force a reconnection by terminating the client first.
2025-11-06 02:42:33 +01:00
schroda 1d639f45ca Restart graphql subscriptions after ws client recreation
Disposing the client does not restart active subscriptions.
2025-11-06 02:41:58 +01:00
schroda 71b70ab0da Ensure graphql ws client is terminated when recreating it 2025-11-06 02:39:02 +01:00
schroda ed0d597185 Cleanup getting server base url 2025-10-19 20:23:03 +02:00
schroda 0ffb54e2cc Fix infinite loading
- Reset "requires auth" flag in session storage for reset on tab refresh
- Fix context los for resolving, rejecting queued request
- Process queued requests after successful login

Regression 6636cc66b1

fixes #1028
2025-10-15 22:50:27 +02:00
schroda 6636cc66b1 Prevent sending requests that are known to fail
In case it's still unknown if auth is set up on the server, only the initial request to detect this should be sent. Since all other requests will also just fail, they should be blocked until the auth initialization is completed.

While the access token is getting refreshed, no request will succeed since the access token is expired; thus, they should not be sent.
2025-10-15 03:06:46 +02:00
schroda f539afb404 Introduce "koration" duration api 2025-10-14 21:14:52 +02:00
schroda f961e734bc Improve graphql ws client connection loss handling
- Retry on all disconnect events
- Retry infinitely
- Cap retry backoff strategy delay at heartbeat interval (20s)
- Recreate client in case reconnecting isn't working
2025-10-10 19:08:46 +02:00
schroda f0c6e789cd Add backup flags to backup import 2025-10-07 22:27:07 +02:00
schroda 60f11a2832 Create backups via graphql api
Fixes #1022
2025-10-04 00:18:09 +02:00
schroda ad3b8d4567 Update server injected subpath detection 2025-09-25 00:20:31 +02:00
Soner Köksal 4d4477640e Add dynamic subpath support (#1011)
* Add dynamic subpath support for WebUI

- Add SubpathConfig utility for server-side subpath detection
- Configure React Router basename from server config
- Update API base URL handling for subpath compatibility
- Fix asset loading with relative paths
- Add VITE_SUBPATH environment variable for development
- Update locales and manifest paths for subpath support

Closes #174

* Move VITE_SUBPATH interface to vite-env.d.ts

* Ensure production bundle always uses relative base
2025-09-23 23:23:19 +02:00
schroda 33fb30a399 Fix including credentials in gql client
Caused the basic auth popup to constantly open again

Regression 4aad410957
2025-08-27 01:10:09 +02:00
schroda 0bd3370d89 Add auth header only when necessary 2025-08-27 00:41:59 +02:00
schroda 4aad410957 Add "ui login" support 2025-08-26 23:06:44 +02:00
schroda 1b4bf22542 Rename folder "modules" to "features" 2025-08-15 22:02:58 +02:00
schroda 24a1fca8be Infer base url again on prod
Regression 5543e134fa
2025-08-13 11:03:54 +02:00
schroda 5543e134fa Use env vars 2025-08-02 23:14:21 +02:00
schroda fed291a5dc Remove "__typename" prop from gql request variables
Will cause the request to fail in case the prop was not expected
2025-07-20 16:48:59 +02:00
schroda bac77599f5 Add WebView support 2025-07-19 21:33:13 +02:00