Commit Graph
100 Commits
Author SHA1 Message Date
schroda 309e37b83f Cleanup applying metadata migrations 2026-05-09 16:44:29 +02:00
schroda 0b3573ec7a Prevent downgrading the applied migration id 2026-05-09 16:44:29 +02:00
schroda be3bb3e24e Fix committing metadata value migrations
In case the "oldValue" was a regex expression, the values never matched, which caused the value migration to never get committed.
2026-05-09 16:44:28 +02:00
schroda b2c14c1a5d Handle invalid number metadata values 2026-05-09 16:44:28 +02:00
schroda dcad44218b Fix setting invalid value for reader settings
When changing a setting from DEFAULT to another value, the value was incorrectly wrapped in an array which lead to an invalid value to get set.
This then caused an error to be thrown, making the reader unusable

fixes #1099
2026-05-09 16:44:28 +02:00
schroda a7dfc05830 Fix showing uninstall button twice in extension info page
In case the extensions has an available update and is obsolete at the same time, the uninstall button was shown twice.

An obsolete extension is not updatable; thus, the second button for the "update" action should not be shown.
2026-05-09 12:25:18 +02:00
schroda f45b42b7b5 Ignore obsolete extensions in updatable count in nav bar 2026-05-09 12:21:56 +02:00
schroda 1a0814e14a Remove unintentional "safeAreaInset" reader setting state selection
Causes unnecessary rerenders and therefore gets selected in a separate state hook call.
This selection was unintentionally merged
2026-05-09 00:02:26 +02:00
schroda 6dea9af192 Remove outdated preview version mappings 2026-05-08 22:59:21 +02:00
schroda 4c68e16594 Add missing divider in search migration setting dialog 2026-05-08 19:28:31 +02:00
schroda 6a025537df [Release] v20260508.01 2026-05-08 18:53:36 +02:00
schroda 8fa179faed Prevent starting single migration while migration is in progress 2026-05-08 18:40:54 +02:00
schroda 8685fed724 Update translation changes in changelog 2026-05-08 18:40:53 +02:00
schroda 4c00d487fe Reduce source requests during bulk migration
During the search the destination entries are already freshly fetched. Thus, this is not necessary anymore during the actual migration
2026-05-08 18:40:53 +02:00
schroda 3ba5edefbd Mark chapters as read based on highest read chapter number during migration 2026-05-08 18:40:53 +02:00
schroda 06eb6a12d6 Queue bulk migration search match update requests
Prevent spamming the source with requests
2026-05-08 17:39:14 +02:00
schroda 55a620c63a Optionally perform advanced search during bulk migration 2026-05-08 17:39:14 +02:00
schroda 3d514d357a Optionally ignore outdated matches during bulk migration 2026-05-08 17:39:13 +02:00
schroda 67bb2248c4 Optionally select bulk migration match based on highest chapter number 2026-05-08 17:37:12 +02:00
schroda 6b234ff9bc Replace "InfoIcon" with "WarningIcon" 2026-05-08 13:02:36 +02:00
schroda f7801de750 Fix bulk migration with migrating entries to their current source
When migrating an entry to the same source as it already is from, the source queues got blocked, preventing any progress.

Since the migration does not do any request to the source of the entry to migrate, it is not required to go through the queue for the source.
2026-05-08 01:58:06 +02:00
schroda d1e70c2609 Add "safe area inset" setting to reader 2026-05-08 01:58:06 +02:00
schroda 6d3eb4266b Update changelog links 2026-05-08 01:54:54 +02:00
schroda 8b42fdf3da Link to server preview changelog 2026-05-05 17:49:01 +02:00
schroda d4fd09294d Respect device safe area inset in reader
closes #1094
2026-05-05 13:42:38 +02:00
schroda e38031a02f Fix tracker search results missing bound track record
There is a possibility that the source changed the manga title after the track record was bound.
In that case it is possible that the track record won't be found anymore when executing the search.

Thus, instead of using the manga title as the search string, the existing track records title should be used instead to make sure that the bound track record will be included in the search results.
2026-05-05 11:21:55 +02:00
schroda 1ee454c137 Fix infinite hook call loop
Regression a7dcdd5651

"usePrevious" uses "useEffect" to update the ref while the fix of the commit updated the state during the render function call.
This causes the component to not actually render and immediately call the render function again. Which then leads to the "usePrevious" hooks "useEffect" to never getting called.
2026-05-05 02:09:36 +02:00
schroda 4f7fb68e42 Prevent enqueuing already queued chapter downloads
Didn't break anything, but creates unnecessary requests as well as misleading toasts
2026-05-05 00:55:45 +02:00
schroda 7b20f08f51 Align chapter "download ahead" download option for single and bulk selection
For the bulk selection the "download ahead" option only downloaded chapter in case there weren't enough downloaded chapters.
In the single mode, this wasn't the case. There was "logic" to make this happen; however, it was not working as expected
2026-05-05 00:51:47 +02:00
schroda bc38076898 Remove rendered brackets 2026-05-02 21:35:25 +02:00
schroda 60e087d79a Fix aborting image requests
Regression 9ed05f3fc0

Due to the change to check if an image is cached, which is done async, it was possible that the image request was aborted before the request actually got queued.

In that case, the abort was called against the "noop" function and did not actually abort the triggered request.
Thus, after the image got queued, we have to optionally abort it again to ensure that the request really gets aborted.
2026-05-02 21:23:50 +02:00
schroda b032b32ec2 Remove "obsolete" extensions group
Obsolete extensions are not grouped at the top of the extension page anymore and instead show an "OBSOLETE" warning text with a the "uninstall" action.
2026-05-02 20:17:24 +02:00
schroda bfc401c9ee Hide pinned source selector during migration without pinned sources 2026-05-02 20:16:58 +02:00
schroda 4cc73ba97f Hide global search "pinned" source filter without pinned sources
closes #1095
2026-05-02 20:16:57 +02:00
schroda 00bba202ef Remove enabling notifyOnNetworkStatusChange usages
Starting with v4 this flag is now enabled by default
2026-05-02 17:37:38 +02:00
schroda 515c402aca Fix loading vite modern polyfills script
The vite legacy plugin injects the modern polyfill script at the start of the header.
This is a problem because it will be injected above the base tag, which results in an invalid url and causing the script load to fail
2026-05-02 17:24:41 +02:00
schroda 5f7b18cf9a Statically set the base tag
Injecting the base tag via a script causes assets to be requested once from an invalid url and then again from the correct one after the base tag got injected.

Setting it statically won't cause any problems with the servers subpath injection, because the browser will just use the first base tag in case there are multiple.

fixes #1096
2026-05-02 17:24:40 +02:00
schroda e3babfed31 Fix reader page retry button in continuous reading modes
In these modes the reader does not load leading pages to prevent the resulting layout shift on load.
This behavior prevented the retry button functionality.

Due to the way loading/failed pages are rendered and how the current page is detected, it's possible that the retry button for a leading page is visible, which resulted in showing a retry button without any functionality.

fixes #1088
2026-05-02 15:30:31 +02:00
schroda c068f2fb35 Fix manga details not updating after refresh with partial data
Regression 0ed2e7c193
2026-05-02 14:42:32 +02:00
schroda 5485f2bb0f Streamline creating workbox image caches 2026-04-27 18:07:15 +02:00
schroda 425a9bca5e Fix formatting 2026-04-27 18:07:15 +02:00
schroda f36a204ed7 Fix workbox cache matching and expiration 2026-04-27 18:07:14 +02:00
schroda 9440326b72 Require server settings and global metadata to be loaded 2026-04-27 15:57:33 +02:00
schroda a7dcdd5651 Fix outdated selected languages in selection dialog
When directly opening the source/extension browse page as the initial page, the metadata server settings weren't loaded yet, and thus, the default values were being used.
Thus, when opening the dialog the first time, it was showing the default selected languages.
2026-04-27 15:57:33 +02:00
schroda 89e0b0761e Fix reader page transition text color
Regression f95b0c8bcc
2026-04-26 14:30:54 +02:00
schroda 5d6b781cc7 Remove dependency "vite-tsconfig-paths"
Not needed anymore
2026-04-25 23:46:04 +02:00
schroda 88bbbe390b Improve SplashScreen colors 2026-04-25 23:46:04 +02:00
schroda f95b0c8bcc Update dependency mui to v9.x 2026-04-25 23:46:03 +02:00
schroda 8155bd6906 Update dependencies 2026-04-25 16:10:51 +02:00
schroda db2c133b21 Fix changing single manga categories via library
Regression 527769ec5e
2026-04-25 13:30:10 +02:00
schroda e03139c4aa Run tsc on commit 2026-04-25 13:12:41 +02:00
schroda 2b0dbd33b4 Move husky i18n tasks to lint-staged 2026-04-25 13:12:41 +02:00
schroda 052c50e5c9 Switch to lint-staged js config file 2026-04-25 13:12:20 +02:00
schroda 2d9881e843 Fix tsc issue 2026-04-25 11:44:43 +02:00
schroda fa56fc4d8e Show searching/migrating entries at the top 2026-04-23 20:40:05 +02:00
schroda 0ed2e7c193 Fix refreshing manga during migration search 2026-04-23 20:40:05 +02:00
schroda 2ae613885d Respect migration manga process queue on retry of single entry 2026-04-23 20:40:04 +02:00
schroda 6933ee7a7a Update migration state after locally aborted manga search
In case the search was aborted due to already having found a match, the state was not updated.
Thus, only if the main migration was aborted and not just the "local" manga search, should it exit early on an error.
2026-04-23 20:40:04 +02:00
schroda 3eb34312ad Resume migration on initial load 2026-04-23 20:40:03 +02:00
schroda 527769ec5e Support library batch selection migration
Closes #1089
2026-04-23 19:02:38 +02:00
schroda 172c522d01 Show pending entries in migration searching group 2026-04-18 14:09:05 +02:00
schroda f6302fe3aa Add bulk migration 2026-04-17 02:19:40 +02:00
schroda c4c2a616f6 Prevent empty commit error in manga types tag update script 2026-04-17 00:56:22 +02:00
schroda 0b88db3e4e Update available languages 2026-04-17 00:52:09 +02:00
schroda 323222d0f2 Fix scroll jump on chapter resume with continuous horizontal mode 2026-04-13 18:16:12 +02:00
schroda 9595076dae Fix reader progress bar current page slot positioning for single page chapters
Was only noticeable in the mobile reader ui because the desktop one hides this component and uses its own logic.
It resulted in the previous/next button not being clickable because the current page component was overlaying it
2026-04-13 18:03:56 +02:00
schroda 684c9c3733 Improve scroll preservation data naming 2026-04-13 16:13:24 +02:00
schroda ea31889969 Fix leading page scroll preservation in continuous horizontal mode with RTL mode 2026-04-13 16:13:24 +02:00
schroda 6131b99169 Disable scroll preservation on infinite scroll initial render if diabled 2026-04-13 14:57:47 +02:00
schroda ebac415b09 Fix tapzone opening previous/next chapter in continuous horizontal mode with inverted reading direction
The logic to detect if the horizontal scroll position was at the start or end of the element was not correct in case the readers reading direction was inverted compared to the browser themes reading direction.

example:
- theme ltr + reader ltr => worked
- theme ltr + reader rtl => broken
- theme rtl + reader ltr => broken
- theme rtl + reader rtl => worked
2026-04-13 14:56:12 +02:00
schroda 4b2c736052 Hide navigation badge text in moible bottom bar 2026-04-11 15:41:52 +02:00
schroda 69e53d365b Fix mobile bottom bar active item state 2026-04-11 15:06:46 +02:00
schroda 712d11f6ce [skip ci] Set "ICU" as "x-message-format" in po file header
Should make weblate recognize the pluralization strings properly instead of handling them like raw text
2026-04-07 16:33:42 +02:00
schroda 2542732b62 [skip ci] Fail on lingui compile error 2026-04-07 16:12:02 +02:00
schroda d92d626698 Always save applied migration regardless of changes
In case open migrations did not apply any changes, the applied migration did not get updated.
This causes unnecessary logic to run everytime the metadata are read.
2026-04-07 15:16:09 +02:00
schroda cc31f592cd Fix saving global metadata applied migration
The applied migration change never got stored on the server because the mutation got excluded due to incorrectly setting the "isMigration" flag to false.
This resulted in executing the missing migration everytime the metadata were read.

Regression 430939a47a
2026-04-07 15:16:09 +02:00
schroda 8a5aaf51f3 Add guard to "enable flaresolverr" setting 2026-04-07 15:16:08 +02:00
schroda d738de2c61 Fix missing available extension info in navbar
fixes #1076

With apollo v4 "refetchQueries" excludes queries with "cache-only" policy

Regression c6343e24a5
2026-03-22 00:30:34 +01:00
schroda 6d41639928 Fix reader transition page previous chapter scanlator name 2026-03-21 00:32:00 +01:00
schroda 519ff43b67 Use stable array/object constants II 2026-03-20 03:36:57 +01:00
schroda 5a2e5f83bc Update available languages 2026-03-20 03:21:45 +01:00
schroda a6c81623a1 Fix "i18n resource update" script 2026-03-20 03:21:44 +01:00
schroda 0cd0034316 Abort dynamic color extraction on manga page leave
The in-flight image request updated the theme regardless of if the manga page was still opened or not
2026-03-20 03:10:17 +01:00
schroda 9ce273b5ce Use stable array/object constants 2026-03-20 03:02:52 +01:00
schroda fcf1c7fa3f Fix "Maximum update depth exceeded"
Regression b63c8a548e
2026-03-20 03:01:32 +01:00
schroda b63c8a548e Fix collectable collection selecting initial items lazily 2026-03-20 01:42:57 +01:00
schroda 33c55f8b85 Fix collectable selection hook memoization 2026-03-20 01:42:15 +01:00
schroda 9aae34b8ad Add logic to have optional page specific back button logic
Makes it possible to trigger actions on back button click and optionally prevent the actual back navigation
2026-03-20 01:42:15 +01:00
schroda e8a64c613a Fix mobile bottom navigation 2026-03-16 22:41:31 +01:00
schroda 54086f1c30 Fix changing reader settings from desktop quick settings
Regression 63ebfd120e
2026-03-15 14:43:40 +01:00
schroda 32fb7b0909 Fix deleting global reader settings
It replaced the global settings with the manga specific ones.

Regression 63ebfd120e
2026-03-15 14:42:49 +01:00
schroda 7de1723b36 Fix updating global reader settings
It replaced the global settings with the manga specific ones.

Regression 63ebfd120e
2026-03-15 14:33:57 +01:00
schroda 8be1da61aa Fix linting 2026-03-15 01:42:37 +01:00
schroda 2eb4d07098 [skip ci] Revert "Fix "no duplicate imports" lint rule auto fixing"
This reverts commit 0a643655ad.

Takes way too long. Linting jumps from ~3s to ~20s, not worth the auto fixing
2026-03-14 02:21:27 +01:00
schroda 80829febb2 [skip ci] Re-add removed lint rules 2026-03-14 02:11:03 +01:00
schroda 0a643655ad Fix "no duplicate imports" lint rule auto fixing
As of now oxlint does not have auto fixing for this rule
2026-03-13 22:11:25 +01:00
schroda 320bfc6c5b Extract manga migration logic 2026-03-13 20:36:46 +01:00
schroda dc56afc17f [skip ci] Get rid of eslint
Dependency needs to be kept because "eslint-plugin-unused-imports" imports from "eslint/use-at-your-own-risk" at load time
2026-03-12 00:09:08 +01:00
schroda 9581bce0f8 Fix eslint plugin rules in oxlint 2026-03-11 23:46:11 +01:00
schroda 1cccd1ea46 Simplify selecting zustand store state 2026-03-11 23:31:51 +01:00