Commit Graph

1995 Commits

Author SHA1 Message Date
schroda
0bd3370d89 Add auth header only when necessary 2025-08-27 00:41:59 +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
Zeedif
0f8c6496f8 fix(i18n): update translation keys (#999)
* feat(chapter): add "mark all as read" option

Added new translation key for "Mark all as read" and updated ChaptersToolbarMenu to use it in the tooltip when marking all chapters as read.

* refactor(i18n): create global download key for generic actions

* feat(i18n): add filter and sort string to chapter toolbar

* fix(i18n): update tooltip text for clear selection action

* apply `yarn lint --fix`
2025-08-24 20:47:24 +02:00
bornav
f851c04932 [Improvment] Drag scrolling inertia calculation no longer locked to 60hz (#1003)
* feat/make-drag-scroll-not-locked-to-60

* fixup-addresing comments
2025-08-24 20:46:32 +02:00
github-actions[bot]
870174632b Update available languages 2025-08-18 23:32:49 +00: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
7b9cce765e Remove outdated "@ts-ignore" usage
Got fixed with v5.3.5
2025-08-16 17:25:54 +02:00
schroda
f13fcc0e8c Move type "NullAndUndefined" to util types 2025-08-16 17:10:48 +02:00
schroda
e1058200c0 Delete unused "ExtensionOptions" component 2025-08-16 16:04:02 +02:00
schroda
a403e6cb5f Structure "extension" in sub-features 2025-08-16 16:03:32 +02:00
schroda
d2b2eb9595 Move components to "browse" feature 2025-08-16 15:58:43 +02:00
schroda
32bfca8db2 Structure "source" in sub-features 2025-08-16 15:48:07 +02:00
schroda
9e5af57a5f Move "core" folder out of "features" into "base" 2025-08-16 15:44:17 +02:00
schroda
f4c06d474d Merge "Context" and "ContextProvider" components 2025-08-16 02:21:43 +02:00
schroda
f548ba9502 Structure "reader" in sub-features 2025-08-16 02:02:13 +02:00
schroda
fc12f5dfd3 Move "UpdateChecker" to "updates" feature 2025-08-15 22:17:10 +02:00
schroda
1b4bf22542 Rename folder "modules" to "features" 2025-08-15 22:02:58 +02:00
schroda
7e6ced1d09 Fix manga migration with disabled category step
Should have been included in 1f55531436

fixes #1000
2025-08-15 19:24:11 +02:00
schroda
c4663d9e23 Prevent creating categories without names
Fixes #995
2025-08-13 22:39:35 +02:00
schroda
847de5b9cf Cleanup category settings 2025-08-13 22:01:10 +02:00
schroda
e6a0f68621 Show correct empty category message 2025-08-13 21:37:36 +02:00
schroda
24a1fca8be Infer base url again on prod
Regression 5543e134fa
2025-08-13 11:03:54 +02:00
schroda
765799b236 Fix tracker redirection on non logged in trackers
Incorrectly routed to the tracker oauth page which then just redirected to the tracker settings page.
2025-08-04 21:53:04 +02:00
schroda
063ec5ea83 Hide private track option if unsupported in active track card 2025-08-04 21:37:09 +02:00
schroda
1f55531436 Fix handling of disabled manga migration steps
In case e.g., the "tracking" should not get migrated, the "migration action" was still created.
While creating the action, an error was thrown because the "tracking" information was missing, as expected, since it's not required.

To prevent this, the actions should only get created in case they are actually required for the migration.
2025-08-03 15:41:30 +02:00
schroda
5543e134fa Use env vars 2025-08-02 23:14:21 +02:00
schroda
4f5754399b Prevent translation of hardcoded value in user facing text 2025-08-02 13:05:29 +02:00
schroda
c758cc41e1 Prevent white screen on page load
Bug introduced with ff58dcc480.
With 18ddf46f17 the "appearance" settings got moved from the local storage to the server metadata.
However, the old settings still remained in the local storage, which includes a value with they key "appTheme". This was the id of the selected app theme.
With ff58dcc480 this key got resued for the app theme object, which leads to a type error in case the old setting is still present in the local storage.
2025-08-01 20:32:54 +02:00
schroda
ca938a6438 Fix tsc error 2025-07-28 20:59:14 +02:00
schroda
a38b2fce9d Simplify "useStorage" hook 2025-07-28 20:57:16 +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
6d98bf8870 Ensure app theme "id" property exists
The app themes do not have the "id" prop by default.
2025-07-28 02:51:54 +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
fb00f51107 Set last known app theme background color until theme is loaded 2025-07-28 00:25:30 +02:00
schroda
ff58dcc480 Set last known app theme until theme is loaded 2025-07-28 00:24:27 +02:00
schroda
dabadf1b43 Reset nav bar width on override 2025-07-28 00:24:26 +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
20ca6d6cda Fix download conversion setting input labels 2025-07-26 01:12:25 +02:00
schroda
fcc68ce594 Mention "none" download conversion target mime-type in description 2025-07-26 01:12:25 +02:00
schroda
a846a84777 Fix download conversion change detection
The setting was considered to have always been modified. This resulted in the save button never being disabled.
2025-07-26 01:12:24 +02:00