Commit Graph
100 Commits
Author SHA1 Message Date
schroda 28a2b44e94 [skip ci] Fix mapping to non-existend ui version 2025-10-08 23:29:43 +02:00
schroda beb642d150 [skip ci] Update versionToServerVersionMapping 2025-10-07 22:29:37 +02:00
schroda f0c6e789cd Add backup flags to backup import 2025-10-07 22:27:07 +02:00
schroda faa53b049f Fix downloading created backups while in dev env
Use absolute url to ensure that the backup file gets requested from the servers domain
2025-10-04 21:42:09 +02:00
schroda bc2d7cadc4 Use "GlobalDialogManager" for backup validation 2025-10-04 16:36:30 +02:00
schroda b795f98766 Replace "useCategorySelect" with "GlobalDialogManager" 2025-10-04 14:51:35 +02:00
schroda d33f708104 Add backup flag selection on backup creation 2025-10-04 14:51:34 +02:00
schroda 3e98b5172d Move "SelectableCollection" to "base" folder 2025-10-04 14:49:01 +02:00
schroda 9329ef5fdc Improve logic to show dialog outside of components 2025-10-04 14:49:00 +02:00
schroda 60f11a2832 Create backups via graphql api
Fixes #1022
2025-10-04 00:18:09 +02:00
schroda 6b16cdbf54 Move "i18n" import to "index.tsx" 2025-10-01 23:22:07 +02:00
schroda bd13261f7e Remove "fontsource" dependency
Fonts get loaded dynamically through "ThemeFontLoader"

Fixes #1016 along with 8c50b33a93.
See explanation of linked commit.

The problem with this import was that MUI by default uses font weight 300, 400, 500 and 700.
For some reason importing all font weights caused the issue of the linked ticket while importing only the necessary font weighs fixed it.
2025-10-01 23:22:05 +02:00
schroda bee048cfc9 Extract theme font loading logic 2025-10-01 23:20:18 +02:00
schroda 8c50b33a93 Improve theme fonts loading
- Extract all fonts and all font weights from the theme
- Load all required weights per font

Not clear 100% what is the root cause. But the (missing font weights?) loaded fonts did cause some incorrect initial tooltip width measurement that lead to an out-of-viewport tooltip placement. Depending on the tooltip text and the monitor (size + scaling) the measurement might result in a fractal width. In case the tooltip was placed right on the horizontal end of the viewport this then lead to a horizontal scrollbar which potentially caused an additional vertical scrollbar resulting in a layout shift.
Once the tooltip was rendered, the placement got corrected. Depending on the mouse placement, however, this issue caused an infinite loop of appearing and disappearing scrollbars.

Fixes #1016
2025-10-01 23:20:17 +02:00
schroda 121c74ed73 Fix source iso language detection
Caused issue for some languages, e.g., for all the different chinese languages, which are not all specified in the "IsoLanguages". These languages all incorrectly used the standard native chinese name which resulted in multiple different source groups with the same group name.
2025-10-01 01:44:30 +02:00
schroda 29e3f64527 Fix download queue start/stop button tooltip text 2025-10-01 01:44:29 +02:00
schroda c1f9699834 [skip ci] Fix bug issue template 2025-09-28 23:30:16 +02:00
schroda fb26ef2675 [skip ci] Make database field required in bug issue template 2025-09-28 23:29:02 +02:00
schroda 637bbdb4a8 [skip ci] Add database to bug issue template 2025-09-28 23:28:14 +02:00
schroda 207564cd4b [skip ci] Align bug issue template with server
- Same sort order
- Add database field
- Add server desktop environment field
2025-09-28 23:26:31 +02:00
schroda 741426173a Prevent horizontal scrollbar on viewport width increase
When increasing the window, the main reader container did not immediately reflect the change and was still smaller than the available width.
In case the viewed pages were filling the full width, this then caused the horizontal scrollbar to appear until the resize action was finished.
2025-09-27 17:40:31 +02:00
schroda d7690f9a36 Reduce rerenders on reader overlay visibility change 2025-09-27 17:40:30 +02:00
schroda b1babc9dd1 Preserve correct page index during reader resize
Ensure the restored page index is based on the page index at the start of a resize event to maintain consistency.
At least in the continuous horizontal mode, it was possible to sometimes cause the page to change while resizing.
2025-09-27 17:40:29 +02:00
schroda 1c526b3feb Prevent reader page preservation in none continuous modes 2025-09-27 13:51:26 +02:00
schroda ab1521fb81 Fix editing global reader settings
Regression 433dc17c35
2025-09-26 23:27:16 +02:00
schroda 7ddc4949e5 Fix loading of locales 2025-09-25 01:41:00 +02:00
schroda 60e03a4404 [skip ci] Update versionToServerVersionMapping 2025-09-25 01:09:55 +02:00
schroda ad3b8d4567 Update server injected subpath detection 2025-09-25 00:20:31 +02:00
schroda a2d7091712 Remove "forwardRef" usage 2025-09-25 00:20:10 +02:00
schroda bcb5e391f0 Downgrade PREVIEW version
Latest "subpath" support is broken.

Opening anything but the root path gives a blank page.
In the console a "Failed to load module script" error is shown.
This is caused because any path after the root is considered to be part of the root. Thus, invalid urls are used for all requests.

Example:
  Root: "localhost:4567/manga"
  
  Open page on "localhsot:4567/manga/44" will lead to this url being used as the root.
2025-09-24 20:43:31 +02:00
schroda 0706e4671f Normalize extracted theme fonts before loading them
Ensure fonts are properly trimmed and stripped of quotes to maintain consistency and avoid potential loading issues.

The default fonts defined by MUI e.g., are set as "\"Roboto\", \"Helvetica\", \"Arial\", sans-serif" which lead to an invalid font request.

Fixes #1012
2025-09-23 22:15:11 +02:00
schroda d625a7b3dc Fix incorrect truthy check for conditional rendering in SourceLanguageSelect
Ensure proper validation for `sourcesOfLanguage` to prevent potential rendering issues.
2025-09-22 23:59:20 +02:00
schroda f37d7e892a Fix tsc issues 2025-09-22 17:58:28 +02:00
schroda b6d7f6da5d Add zustand dev tools 2025-09-22 01:10:36 +02:00
schroda f6b94c838b Fix reset of reader store
After the slice states got reset, the base reset function just reverted all those resets and only reset the base states in the store (manga, scrollbar, ...)
2025-09-22 01:10:35 +02:00
schroda 525173e05e Add dedicated store access util functions
Makes it easier to find the specific store slice usage
2025-09-21 01:16:59 +02:00
schroda ed488f76dd Always use "useShallow" for store selection 2025-09-21 01:16:57 +02:00
schroda 5730690ae6 Simplify ReaderControls#useHandleClick 2025-09-21 01:16:53 +02:00
schroda ca5920919e Simplify ReaderControls#useOpenPage 2025-09-21 01:16:51 +02:00
schroda f5c7379fc4 Simplify ReaderControls#useOpenChapter 2025-09-21 01:16:49 +02:00
schroda 1c0b982bae Remove unnecessary TFunction parameter 2025-09-21 01:16:47 +02:00
schroda 19e45424ae Make react router routing possible outside components 2025-09-21 01:16:44 +02:00
schroda b13bb86f40 Move app theme related types to dedicated file
Fixes circular dependency.
2025-09-21 01:16:42 +02:00
schroda ed53aff071 Extract "reader chapters store slice" into file 2025-09-21 01:16:39 +02:00
schroda 9f5db5496f Extract "reader pages store slice" into file 2025-09-21 01:16:36 +02:00
schroda 6da8a3fd87 Move reader store in sub dir 2025-09-21 01:16:33 +02:00
schroda fb70d89940 Move reader "tap zone state" to "reader store" 2025-09-21 01:16:30 +02:00
schroda f60b537115 Move reader "progress bar state" to "reader store" 2025-09-21 01:16:28 +02:00
schroda 98ec5257b9 Move reader "settings state" to "reader store" 2025-09-21 01:16:26 +02:00
schroda 5177f9efdc Move reader "chapters state" to "reader store" 2025-09-21 01:16:25 +02:00
schroda bada26ead6 Move reader "pages state" to "reader store" 2025-09-21 01:16:22 +02:00
schroda dabe50754f Move reader "auto-scroll state" to "reader store" 2025-09-21 01:16:17 +02:00
schroda e68cb65874 Move reader "overlay state" to "reader store" 2025-09-21 01:16:15 +02:00
schroda 9bedec7115 Rename "reader scrollbar state" properties 2025-09-21 01:16:13 +02:00
schroda 4cc5821ead Move reader "scrollbar state" to "reader store" 2025-09-21 01:16:10 +02:00
schroda 433dc17c35 Move reader "manga state" to "reader store" 2025-09-21 01:16:04 +02:00
schroda 4e30081ed8 Move reader "pages" state to base reader types 2025-09-21 01:16:01 +02:00
schroda f6566e535f Add "immer" dependency 2025-09-21 01:15:59 +02:00
schroda ebebd50689 Add "zustand" dependency 2025-09-21 01:15:58 +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 5456428916 Add step size to kroeader tolerance setting 2025-09-18 22:28:06 +02:00
schroda c77a1b1677 Fix library update skip entries setting
Regression 94299433c8
2025-09-18 00:28:31 +02:00
schroda 54a31b2113 Update nav bar available extensions update text 2025-09-16 17:48:01 +02:00
schroda 38ac36d14c Fix setting "default" download conversion mime type
The server expects the mime type to be "default", while the ui set it to "image/default"
2025-09-13 14:13:32 +02:00
schroda 792aca1b28 Fix login page redirection when already authenticated 2025-09-10 12:55:23 +02:00
schroda 98e1cb2eff Reuse SplashScreen on LoginPage 2025-09-10 00:56:44 +02:00
schroda 3d023abc6c Always show server address input on LoginPage
In case the webUI wasn't hosted on the same domain as the server, the ui was stuck on the login page, due to the inferred server address being wrong.
2025-09-10 00:56:44 +02:00
schroda 9486bf1a81 Always show server address input on SplashScreen
In case the webUI wasn't hosted on the same domain as the server, the ui was stuck on the splash screen, due to the inferred server address being wrong.
2025-09-10 00:56:41 +02:00
schroda e138229832 Fix SplashScreen light mode logo color 2025-09-10 00:55:41 +02:00
schroda 464edc0f18 [skip ci] Update "versionToServerVersionMapping" 2025-09-08 01:17:39 +02:00
schroda fcea0504c7 Update "versionToServerVersionMapping" 2025-09-08 01:03:23 +02:00
schroda 8745101c8a Add "open in webview" button in "SourceMangas"
closes #991
2025-09-08 00:59:14 +02:00
schroda d5ee36bdaa Fix nav bar "available updates" pluralization 2025-09-08 00:52:56 +02:00
schroda 94299433c8 Remove redundant extract helper functions for server settings
Simplifies settings usage by directly accessing the `settings` object instead of relying on intermediary extraction functions. Improves code readability and reduces unnecessary abstraction.

Ensures consistency across all settings components for a cleaner and more efficient implementation.
2025-09-08 00:46:57 +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 9552f13a78 Use cache-only fetch policy for nav bar extension list query
Prevents unnecessary network requests when fetching the extension list to show updatable extension info in the nav bar.
2025-09-06 14:59:31 +02:00
schroda dad58f77b6 Handle obsolete extensions during update/uninstall actions
Prevent treating extensions marked as obsolete as updatable by adding an additional check before determining the action.
2025-09-06 14:58:19 +02:00
schroda 45481cd725 Prevent grouping obsolete extensions with updatable ones
Apparently extensions can have an update available while being marked as obsolete.
2025-09-06 14:53:35 +02:00
schroda c8dc7a303c Handle authentication on reader route 2025-09-03 00:13:41 +02:00
schroda ef4f6659aa Remove graphql plugin config file 2025-08-30 17:09:41 +02:00
schroda a57281cda2 Update required server version for preview to r1901 2025-08-28 17:39:39 +02:00
schroda aacf1903a1 Remove console log 2025-08-27 01:24:12 +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 592161353e [skip ci] Remove unused dependency "js-cookie" 2025-08-26 23:18:24 +02:00
schroda a3603c475e [skip ci] Cleanup "useMouseDragScroll" array access 2025-08-26 23:11:23 +02:00
schroda ece31ddc18 Fix mouse cursor drift during drag scroll
Previously, the drag-scroll implementation used incremental relative positioning
  which accumulated rounding errors over time. This caused the mouse cursor to
  gradually drift away from its original position during prolonged drag operations,
  particularly noticeable on slower hardware or systems with lower frame rates.

  The fix switches from cumulative delta updates to absolute positioning:
  - Track initial mouse and scroll positions when drag starts
  - Calculate scroll position as: initialScroll - (currentMouse - initialMouse)
  - This ensures the visual position remains locked throughout the entire drag

  This change eliminates drift by avoiding cumulative floating-point
  errors that occurred with the previous += approach.

  1. Inverted Logic: The code adds the mouse delta to scrollLeft/scrollTop, but this is backwards. When you drag right, you want the content to move left (scroll increases), and vice versa.
  2. Cumulative Rounding Errors: Using += with floating-point deltas accumulates rounding errors over time, especially on slower hardware where mousemove events may be processed less frequently or with more delay.
  3. Frame Rate Dependency: On slower hardware, if the browser can't keep up with all mouse events, some movements get skipped, but the positions still update, causing the reference point to drift.
2025-08-26 23:06:45 +02:00
schroda 4e4a607c01 Ensure up-to-date navbar extension update amount
The shown amount was based on the cached extension data from the server.
To refresh the data, the "Extensions" page had to be opened.
2025-08-26 23:06:45 +02:00
schroda 4aad410957 Add "ui login" support 2025-08-26 23:06:44 +02:00
schroda 403cab7d80 Fix deletion of chapters while reading logic
- Consider duplicated chapters in "should delete chapter" check
- Check each duplicate if it can be deleted
2025-08-25 02:06:23 +02:00
schroda bfb10ad204 Fix app storage "null" and "undefined" value handling 2025-08-24 20:48:31 +02:00
schroda 414211ae74 Hide extension update info in navbar without available updates 2025-08-24 20:48:26 +02:00
schroda 21e2e5cd8c [skip ci] Fix pushing outside repo in "update_i18n_languages" workflow 2025-08-19 01:31:39 +02:00
schroda 5d7f0a1f07 [skip ci] Push git changes in "update_i18n_languages" workflow 2025-08-19 01:23:20 +02:00
schroda 446fee9108 [skip ci] Fix commiting changes in "update_18n_languages" workflow 2025-08-19 01:08:32 +02:00
schroda b81cc8ec17 Show available extension updates in navbar 2025-08-18 22:52:28 +02:00
schroda 11e98b6913 Prevent infinite browse source loading
The loading placeholder was never removed in case the whole source catalogue was added to the library and the "hide entries in library" setting has been enabled.
2025-08-18 22:45:25 +02:00
schroda 9b189db919 Update dependencies 2025-08-16 18:03:55 +02:00