schroda
9e621edbf4
Use active theme as default value when creating new custom theme
2026-01-18 19:17:21 +01:00
schroda
54e9f6f9bc
Reduce manga page chapter list item text size
...
Partially closes #1049
2026-01-18 19:17:21 +01:00
schroda
383d46846e
Reduce manga page thumbnail size on small screens
...
Partially closes #1049
2026-01-18 19:17:19 +01:00
schroda
2b986c3564
Reduce base font size
...
Partially closes #1049
2026-01-18 19:07:12 +01:00
schroda
41b0fe77d6
Fix reference error causing white screen
2026-01-18 18:07:07 +01:00
schroda
7e39df09c4
Add max-age expiration to service worker image caches
2026-01-18 16:57:05 +01:00
schroda
7b13c1dcc1
Split service worker image cache into multiple
2026-01-18 16:56:57 +01:00
schroda
25b8c85ef2
Fix broken webui was updated info text
...
Regression 65a9a905be
2026-01-15 01:27:08 +01:00
schroda
bc077bdad7
Prevent potential TypeError
...
"sourcesByLanguage" can be empty while the sources are still loading
2026-01-15 01:22:46 +01:00
schroda
081d37a459
Make source language filter language header sticky
2026-01-15 00:53:49 +01:00
schroda
a8eea7eddd
Change source language filter source select input to checkbox
2026-01-14 23:44:21 +01:00
schroda
7ef353aa2e
Fix missing pinned sources in source language filter
2026-01-14 23:39:17 +01:00
schroda
cfc0e672ef
Store refresh token in local storage
...
For convenience to not have to log in everytime after closing the tab, opening a new tab, closing the browser/pwa app.
closes #1018
2026-01-14 17:13:32 +01:00
schroda
650adde181
Fix forced webui page reload on update
2026-01-14 16:47:39 +01:00
schroda
0fd5bb3284
Fix missing "custom app languages"
...
Regression c1ac58f4d6
2026-01-14 16:34:38 +01:00
schroda
65a9a905be
Migrate to lingui
...
Switch to "lingui" for better DX.
Tried to persist existing languages as much as possible.
Removed "vite-plugin-node-polyfills" because it's incompatible with "lingui"
2026-01-13 17:33:36 +01:00
schroda
c1ac58f4d6
Split up language utils file
2026-01-13 17:33:34 +01:00
schroda
3d8d230995
Render some components outside of auth guard
2026-01-13 17:32:57 +01:00
schroda
9642c85007
Fix total library size chip color in light mode
2026-01-08 16:09:50 +01:00
schroda
23c587b351
Change pure black mode paper background color to true black
2026-01-08 15:42:59 +01:00
schroda
0ed0ab1109
Prevent red hue in automated neutral background colors
2026-01-08 15:15:03 +01:00
schroda
f7967fbfe2
Change "save dynamic theme" button toolbar menu position
2026-01-08 15:13:45 +01:00
schroda
62fc547957
Do not disable "save dynamic color theme" button during refresh
2026-01-08 15:13:03 +01:00
schroda
f2b440a669
Fix disabled save custom theme button in "save_dynamic" mode
2026-01-08 15:11:55 +01:00
schroda
2e4d2fccca
Fix primary, secondary dynamic theme colors for inactive theme mode
...
When the DARK mode is active, the primary and secondary colors still need to be correctly selected for the dynamic theme light mode.
Otherwise, in case the dynamic color theme gets saved, the inactive theme mode has incorrect primary and secondary colors
2026-01-02 23:08:38 +01:00
schroda
3ef4e92114
Fix save "dynamic color theme" dialog title
2026-01-02 22:50:12 +01:00
schroda
ce4eb98cbc
Increase max length of custom themes to 32
2026-01-02 22:40:03 +01:00
schroda
4eaa701851
Add option to save dynamic manga color theme
2026-01-02 22:38:26 +01:00
schroda
bc06d88db0
Use AwaitableComponent for "CreateThemeDialog"
2026-01-02 22:38:04 +01:00
schroda
fd856c5cbd
Increase threshold of large thumbnails for dynamic theme colors algo
2026-01-02 22:38:03 +01:00
schroda
b8fa4478f7
Always use Dark-/LightVibrant color as primary color dynamic theme
2026-01-02 22:38:03 +01:00
schroda
a317d55320
Improve theme auto background color
...
Should keep more of the original color, which previously got "washed out" because it was darkened/lightened too much
2026-01-02 22:38:02 +01:00
schroda
1d54a24adf
Set "secondaryColor" for dynamic themes
2026-01-02 21:18:42 +01:00
schroda
82600fae65
[skip ci] Add missing contributors to release v20251230.01 in changelog
2025-12-30 18:05:16 +01:00
schroda
3fb4d53091
[Release] v20251230.01
2025-12-30 17:51:04 +01:00
schroda
f9973e0ef3
Improve image processing settings url target adding search parameters
2025-12-28 02:42:52 +01:00
schroda
cf24b388ba
Fix extension info meta and action button styling
...
Ensure all components have the same width. Otherwise, the divider is not centered properly, which makes it look weird
2025-12-23 04:06:44 +01:00
schroda
04cdfafe31
Show uninstall button for updatable extension
...
fixes #1042
2025-12-23 04:06:44 +01:00
schroda
8da12f7a6e
Simplify disabling image processing for mime-type
2025-12-23 02:35:01 +01:00
schroda
5def0ea818
Add new image processing settings on serve
2025-12-23 02:10:06 +01:00
schroda
d20ca69dc0
Extract "image processing" components
2025-12-23 02:08:24 +01:00
schroda
4c18348890
Move "clear cache" to "images" settings page
2025-12-23 02:08:15 +01:00
schroda
cedb865a42
Add "images" settings page
2025-12-23 02:08:14 +01:00
schroda
1b0d907708
Add new "external image processing" settings for downloaded images
2025-12-23 02:07:56 +01:00
schroda
083586c567
Update graphql files structure
2025-12-22 14:00:44 +01:00
schroda
14a881f17f
Consider "empty" download conversion as unchanged
2025-12-22 12:56:18 +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
schroda
43d994f843
Keep unchanged metadata stable for memoization
...
Everytime the metadata got updated, unchanged values could cause rerenders because their reference changed.
This happened e.g., for the "customThemes" which caused the MUI theme to get recreated resulting in all components to rerender due to the theme context change.
2025-12-22 12:32:48 +01:00
schroda
bded64b0b1
Convert "download conversions" setting to a page
2025-12-22 12:31:54 +01:00
schroda
162b477032
Add "auto backup flags" settings
2025-12-22 12:31:48 +01:00
schroda
3ff6f2ec5f
Add "opds cbz mime-type" setting
2025-12-13 17:50:29 +01:00
schroda
064dc9041b
Add "hikari connection pool" setting
2025-12-06 20:01:31 +01:00
schroda
e914c04c88
Fix force page reload decision after a webui update
2025-12-06 20:01:09 +01:00
schroda
36248e17f0
Change add to library "show duplicate entry" button to be a link
2025-12-02 22:12:49 +01:00
schroda
17390b4ed9
Fix manga page "in library" button after click on "show duplicate entry"
2025-12-02 22:11:56 +01:00
schroda
13d6d1e525
Revert "Reduce rerenders on current page changes"
...
This reverts commit 3e9078420a .
Fixes #1040
2025-12-02 21:51:51 +01:00
schroda
8358a2f51e
Include "last update timestamp" in chapter updates query
2025-11-30 18:48:12 +01:00
schroda
9646aa2caf
Fix reader progress bar size setting slider max value
2025-11-30 18:44:23 +01:00
schroda
3e9078420a
Reduce rerenders on current page changes
...
The chapters state always created a new array reference which caused potential unnecessary rerenders.
2025-11-29 16:23:45 +01:00
schroda
3d8a81bc5d
Reduce rerenders of reader desktop nav bar
2025-11-29 15:26:57 +01:00
schroda
b5d71adeae
Prevent reader progressbar tooltips on mobile
2025-11-28 23:30:10 +01:00
schroda
860b00a0b5
Prevent reader progressbar tap highlighting on mobile
2025-11-28 23:29:51 +01:00
schroda
3dcdca7166
Reduce image rerenders in continuous reading modes on page change
...
In continuous reading modes the pages are always rendered regardless of if they are visible or not. This is the case to prevent layout shifts when prepending pages while scrolling up.
However, this means that a pages "load priority" and its "should load" flag changes everytime the current page changes, which causes unnecessary rerenders.
The "load priority" and "should load" flag do not matter once a page has been loaded and therefore should stay consistent once loaded.
2025-11-28 23:09:36 +01:00
schroda
3a27461598
Prevent triggering load of already loaded image
...
This caused the reader to "jump to random pages" because it caused the image to get unrendered and rendered again, leading to layout shifts.
This issue existed already for a long time but could only rarely be observed because of the hacky "cache check" logic.
The changes from 9ed05f3fc0 caused this issue to be consistent in case the new service worker could not get installed due to not meeting the required installation prerequisites. If that was the case, the cache check always returned false causing the above-described behavior.
fixes #929
2025-11-28 23:09:35 +01:00
schroda
d0735365ff
Fix first visible page detection
...
50a6b72716 did not properly fix the detection and broke it for other reader settings.
2025-11-27 02:38:09 +01:00
schroda
e42fde5232
Fix incorrect error message when closing backup restore dialog
2025-11-26 18:18:31 +01:00
schroda
57a782c30b
Fix adding search params to url
2025-11-23 16:42:15 +01:00
schroda
87c3f03f3d
Fix calling SpinnerImage load, error callbacks
2025-11-23 00:27:02 +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
704d3b191f
Flag event listeners as passive
2025-11-22 19:14:43 +01:00
schroda
36e6d7d13e
Start pointer device determination on load
2025-11-22 19:14:36 +01:00
schroda
651edf7c82
Prevent potential TypeError during pointer device type determination
2025-11-22 16:49:06 +01:00
schroda
e5eda76ea7
Recreate ws client when receiving auth error message
2025-11-20 13:58:44 +01:00
schroda
48b57c4a74
Simplify reader visible page detection
2025-11-17 02:19:36 +01:00
schroda
36477d1c95
Simplify scroll page into view inline alignment determination
2025-11-17 01:37:32 +01:00
schroda
50a6b72716
Fix first visible page detection in RTL + continuous horizontal mode
2025-11-17 01:24:58 +01:00
schroda
d093fe0281
Prevent default action on hotkey by default
2025-11-16 22:32:18 +01:00
schroda
64d5f3b8e1
Fix preserving current page on "reader width" change
...
Preservation triggered on every setting change because the object instance changed
2025-11-16 22:26:06 +01:00
schroda
5c743f668c
Update dependencies
2025-11-16 21:04:57 +01:00
schroda
bab55bafdb
Preserve reader current page on "reader width" change
2025-11-13 01:35:46 +01:00
schroda
7b89fa10c5
Fix reader current page preservation on window resize
2025-11-13 01:35:46 +01:00
schroda
2510d11888
Preserve reader current page on "page scale" setting change
2025-11-13 01:35:45 +01:00
schroda
197d55f819
Rename "useReaderHorizontalModeInvertXYScrolling" to reflect actual behavior
...
The Y scroll direction gets mapped to the X direction. And the horizontal direction gets inverted based on the reading direction.
2025-11-13 01:35:45 +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
b062871163
Skip gql subscriptions until auth is properly set up
2025-11-06 21:38:00 +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
7c1e4be0e8
Close "category select" dialog on "edit/create" click
2025-11-03 21:59:29 +01:00
schroda
02621dec98
Introduce "awaitable-component"
2025-11-03 21:45:53 +01:00
schroda
7502393f40
Fix back button when previous page should be ignored
...
In case the previous page in the history should be ignored, the back button just went back to the root page (library).
Instead, it should try to go back to the next page in the history until there is no page to go back to anymore.
2025-10-30 00:26:19 +01:00