Commit Graph
377 Commits
Author SHA1 Message Date
schroda e5eda76ea7 Recreate ws client when receiving auth error message 2025-11-20 13:58:44 +01:00
schroda 88f1ef7384 Improve reader horizontal mode scroll Y to X re-mapping
When scrolling really fast, the delta value could increase, which leads to incorrect trackpad detection, because the delta value is not consistent over consecutive scroll events
2025-11-13 01:35: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 932499f211 Reset app initial load time on page reload 2025-11-05 01:17:18 +01:00
schroda 198d899b86 Fix forced reload detection when tab is resumed after WebUI update
In case the tab gets resumed, it does not get fully reloaded but does reexecute js.
This caused the initial timestamp to get overwritten and lead to the forced reload detection to be incorrect, because it assumed that the app just got loaded.
2025-11-04 23:29:17 +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 7ddc4949e5 Fix loading of locales 2025-09-25 01:41:00 +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 b6d7f6da5d Add zustand dev tools 2025-09-22 01:10:36 +02:00
schroda 19e45424ae Make react router routing possible outside components 2025-09-21 01:16:44 +02:00
schroda e68cb65874 Move reader "overlay state" to "reader store" 2025-09-21 01:16:15 +02:00
schroda 7d71780fbc Properly type scalar "Duration" 2025-09-18 22:28:08 +02:00
schroda 80a576db63 Include chapter info in continue reading button tooltip 2025-09-18 22:28:07 +02:00
schroda 8745101c8a Add "open in webview" button in "SourceMangas"
closes #991
2025-09-08 00:59:14 +02:00
schroda 47e93c774f Add "database" settings 2025-09-08 00:37:02 +02:00
schroda 7d81e1106f Add "koreader sync" settings 2025-09-08 00:36:23 +02:00
schroda ef4f6659aa Remove graphql plugin config file 2025-08-30 17:09:41 +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 bfb10ad204 Fix app storage "null" and "undefined" value handling 2025-08-24 20:48:31 +02:00
schroda 7b9cce765e Remove outdated "@ts-ignore" usage
Got fixed with v5.3.5
2025-08-16 17:25:54 +02:00
schroda 9e5af57a5f Move "core" folder out of "features" into "base" 2025-08-16 15:44:17 +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 7eb3b0ac45 Fix parsing storage value
Regression ef6c1fce56
2025-07-28 20:56:36 +02:00
schroda ed2d60dd1c Handle reading string values from storage
Regression ef6c1fce56
2025-07-28 20:40:39 +02:00
schroda 1ab0178d88 Fix local light app theme flicker on initial render
MUIs "useColorScheme" hook always returned "system" on the initial render.
(Probably because it's used outside the AppProvider context)
2025-07-28 02:38:18 +02:00
schroda ef6c1fce56 Fix local/session storage parsing/stringifying values
The old logic stringifyed all values, including strings, which caused problems with reading external stored values (e.g., mui-mode) via the "useStorage" hook.
2025-07-28 02:34:02 +02:00
schroda 7b581e49b0 Remove error name from error message 2025-07-28 00:22:36 +02:00
schroda 56eabae9ae Improve graphql errors display in toast 2025-07-28 00:22:35 +02:00
schroda 18f524c91a Move virtuoso constant to proper location 2025-07-23 01:37:47 +02:00
schroda 2b1c2a0b6c Add "download conversion" setting support 2025-07-20 23:01:34 +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
schroda 0d23d8077f Add private tracking support 2025-07-19 21:33:12 +02:00
schroda 13a7d21e60 Show new tracker search result data
- score
- totalChapters
2025-07-19 16:40:29 +02:00