Commit Graph

425 Commits

Author SHA1 Message Date
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
schroda
b49243607d Fix lib folder name of "react-router-dom" 2025-07-15 00:35:15 +02:00
Constantin Piber
0d288afe74 [skip ci] Update server settings for Authentication modes (#984)
* Update GQL interface

* Update queried server settings

* package.json: Fix GQL script

* Basic AuthMode setting

* Setting disable, disclaimer on login page

* Update gql generated files

* Alphabetical sort en.json

* Fix constants name typos

* Move settings types and constants to corresponding files

* Rename setting constants

* Update required server version

---------

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
2025-07-12 01:08:40 +02:00