Commit Graph
100 Commits
Author SHA1 Message Date
schroda 732f27f319 Fix "rtl" detection in "useAutomaticScrolling" 2024-12-29 22:04:21 +01:00
schroda 74d9e21c76 Abort auto scroll interval for callback mode 2024-12-29 21:42:00 +01:00
schroda a943d2f2bc Extract logic from "ReaderViewer" into functions and hooks 2024-12-29 21:38:31 +01:00
schroda 9438a2f626 Unmount "ReaderNavBarDesktop" on exit
Re-rendering the component isn't too expensive and unmounting it improves the re-rendering caused by page changes since it doesn't get updated.

This removes ~7ms on a "current page" state update and ~25ms caused by the chapter update due to the "last read page" change
2024-12-29 21:38:31 +01:00
schroda 94ee7d4958 Improve "page spread page state" updates
Since "pagesToSpreadState" isn't part of the dependency array and also would decrease the render performance if it was (see reasoning of c79f7cc874), the array reference might be out of date and thus, the guard might not work correctly
2024-12-29 21:38:24 +01:00
schroda c79f7cc874 Improve "page load state" updates
Changes of d6ff85fdd3 decreased the render performance due to the "onLoad" function changing and causing all pages to re-render.
2024-12-29 17:21:37 +01:00
schroda aee42d7bb1 Adjust "MobileReaderProgressBar" active dragging styling 2024-12-28 04:06:03 +01:00
schroda 3185449816 Improve "MobileReaderProgressBar" progress bar click/drag handling
Convert clicks on the progress bar in such a way, that there is a "padding" around the page "dots".
Thus, e.g. even if the click was actually for page 1, if it is inside page 2 padding, it will behave like it was a click for page 2
2024-12-28 04:05:29 +01:00
schroda bc14b68507 Cleanup progress bar interaction handling 2024-12-28 02:33:33 +01:00
schroda 6bae3aaf3a Improve progress bar dragging detection 2024-12-28 02:33:06 +01:00
schroda 0c6872edb3 Improve progress bar rendering while dragging 2024-12-28 02:00:13 +01:00
schroda 347c88f240 Correctly check "page load state" before state update 2024-12-28 01:59:07 +01:00
schroda c5630ca5ce Reset "pageToScrollToIndex" after page selection
In case the current page changed after selecting a page, the previously selected page couldn't be selected again since the "pageToScrollToIndex" was still set to this page
2024-12-28 01:28:12 +01:00
schroda a69447384b Always open next page for auto scroll in single/double page mode
Depending on the reading direction, the previous page got opened instead of the next one.
2024-12-27 21:38:55 +01:00
schroda 3c57011f0c Fix margin of double pages with set reader width
Depending on the set reader width, the auto margin of the images took effect and separated the double pages.
However, for double pages, only the margin left/right depending on the page should be set, to properly center the pages without a gap between them
2024-12-27 21:00:02 +01:00
schroda 89138fadde Reserve only necessary space for "current page" text 2024-12-27 18:26:20 +01:00
schroda d6ff85fdd3 Prevent unnecessary "page load state" updates
Only update state in case it has changed
2024-12-27 18:26:19 +01:00
schroda 3ca379c0f1 Properly update "StandardReaderProgressBar" slots on "progress bar position" change
"createProgressBarSlot" was never called in case the function reference changed but none of the passed arguments
2024-12-27 18:26:19 +01:00
schroda 052625a013 Adjust "MobileReaderProgressBar" styling
In case the current page is the first one, there will be now no visible progress shown anymore. The progress slider will now be exactly at the start of the progress bar.
2024-12-27 18:26:18 +01:00
schroda 3ae0207bed Apply "auto scroll speed" limits to slider input 2024-12-27 18:26:17 +01:00
schroda 6dd6fd8c51 Reduce "auto scroll speed" quick setting size 2024-12-27 04:38:39 +01:00
schroda 7201a34607 Preserve saved search filters on navigate back
The saved search got restored and then "navigate" was called to set the "query" in the url, this however caused the "location key" to change which then made it impossible to load the applied filters from the session storage when going back in the history
2024-12-27 04:11:02 +01:00
schroda 6c175d0b7f Add "started" library filter 2024-12-27 03:36:36 +01:00
schroda 7c0ce65683 Fix auto scroll related tsc issues 2024-12-27 03:36:34 +01:00
schroda 0e9d758c10 Use correct auto scroll amount for x/y direction 2024-12-27 03:12:19 +01:00
schroda cff56c33e8 Prevent auto scroll direction invert for vertical reading mode 2024-12-27 03:10:51 +01:00
schroda e2075a651e Add "automatic scrolling" 2024-12-27 03:02:39 +01:00
schroda 6b0df5329b Move "useHandleProgressDragging" to "ReaderControls" 2024-12-27 02:51:38 +01:00
schroda 506be54e72 Pass progress bar props per HOC
Some unused "reader page state" values which were passed as props caused unnecessary re-renders
2024-12-27 02:51:37 +01:00
schroda d4939247bd Update page "progress bar slot" styling based on load state
Regression 500ee42662
2024-12-27 02:51:36 +01:00
schroda 33e184ba18 Add "auto webtoon mode" option to reader 2024-12-27 02:51:35 +01:00
schroda cfd5b78488 Fix unchangeable global reader settings
Regression 72809309e1
2024-12-26 02:47:37 +01:00
schroda 14770c94c5 Adjust "group header" padding in "Updates"
Align to group headers in other pages
2024-12-26 02:30:51 +01:00
schroda a2ac2971f6 Improve memoization of "MobileReaderProgressBar" 2024-12-26 01:41:36 +01:00
schroda 635f294184 Extract "ReaderProgressBarSlot" from "MobileReaderProgressBar" 2024-12-26 01:09:33 +01:00
schroda 500ee42662 Improve memoization of reader "progress bar slot" rendering 2024-12-25 23:51:17 +01:00
schroda 5220f8ca44 Prevent unnecessary "page spread state" updates
Only update state in case it has changed
2024-12-25 23:50:07 +01:00
schroda 3b62506452 Memoize "useBackButton" returned function 2024-12-25 23:49:17 +01:00
schroda f263422b1c Extract "reader progress bar slot wrapper" 2024-12-25 22:32:31 +01:00
schroda ef15788c13 Pass "transitionPageMode" to "ReaderTransitionPage"
Regression d67d6f7d28 which was never caught due to an error in the "withPropsFrom" HOC typing (fixed with 2e79f3f0db)
2024-12-25 17:14:52 +01:00
schroda 2e79f3f0db Fix "MergeObjectsArray" util type
Never worked properly due to using a non-existent type for the recursive call.

This caused the "withPropsFrom" HOC to not properly type the "sourcePropKeys" which were just all props of the passed component instead of the common keys of the component and the passed "prop sources"
2024-12-25 17:09:30 +01:00
schroda 2a20326c76 [SKIP CI] Fix "yargs" usage
With "esm" "yargs" is not a singleton anymore
2024-12-25 14:56:48 +01:00
schroda 50e53dedc3 Replace "ts-node" with "tsx"
"ts-node" has problems with "esm" and "path-aliases"
2024-12-25 14:38:27 +01:00
schroda ae89a42ac4 Scroll to start of page on page change
Resets the scroll position for single/double page mode to the start of the opened page on a page change.
2024-12-25 02:59:53 +01:00
schroda d67d6f7d28 Move "ReaderTransitionPage" setting props to "withPropsFrom" HOC 2024-12-25 02:38:36 +01:00
schroda 5dbf1aa8e0 Adjust ReaderChapterTransition text color
Text color was never adjusted based on the selected "reader background color"
2024-12-25 02:36:53 +01:00
schroda 7d93b7995a Open reader overlay while error with long message is shown 2024-12-24 17:26:47 +01:00
schroda 4d162262b6 Maximize reader progress bar only when pages are loaded
It takes away space for the reader overlay to get opened while an error is shown.
2024-12-24 17:26:47 +01:00
schroda 326e8b9881 Prevent EmptyView from taking over click events
E.g. in the reader it was not possible to open the overlay while the EmptyView was visible due to it blocking the readers click handling
2024-12-24 17:26:46 +01:00
schroda 72809309e1 Always register reader hotkeys
The hotkeys were never registered e.g. while loading or in case an error occurred
2024-12-24 17:26:45 +01:00
schroda 94b0e25df2 Update "apollo-upload-client" to v18.x
- apollo-upload-client v18.0.1
- @types/apollo-upload-client v18
2024-12-24 14:19:40 +01:00
schroda 53b63f197a Update "vite" to v6.x
- vite v6.0.5
- vite-tsconfig-paths v5.1.4
- vite legacy plugin v6
2024-12-24 13:42:04 +01:00
schroda 86eef26748 Update to "node" v22.12.0 2024-12-24 13:42:04 +01:00
schroda e77f613d4a Update "i18next-http-backend" to v3.x
v3.0.1
2024-12-24 13:42:03 +01:00
schroda 561a3595fa Update "i18next" to v24.x
v24.2.0
2024-12-24 13:42:03 +01:00
schroda 1e6e0984b5 Update "file-selector" to v2.x
v2.1.2
2024-12-24 13:42:02 +01:00
schroda ba63f85f3f Fix unmet peer dependencies
- "@mui/system" for "@mui/x-date-pickers"
- "csstype" for "notistack > goober"
- "mui-nested-menu" is outdated and can't be fixed, but still works with "@mui/material v6.3.0"
2024-12-24 13:42:02 +01:00
schroda 9d74380e94 Convert to ESM 2024-12-24 13:42:01 +01:00
schroda 89cab26f73 Fix typing after "apollo-client" update to v3.12.4 2024-12-24 00:36:26 +01:00
schroda 67de6c4789 Update dependencies 2024-12-24 00:36:25 +01:00
schroda d3e8f713ab Add elevation to reader mobile overlay 2024-12-23 02:57:34 +01:00
schroda 2acc82289d Add elevation to snackbar
Depending on the color of the background, the snackbar was hard to see, especially when using light mode
2024-12-23 02:46:56 +01:00
schroda 71373d4bd3 Remove unused space at bottom of snackbar without description
Get rid of unnecessary white space when there is no description to show
2024-12-23 02:41:31 +01:00
schroda 15baf1f7fb Properly center reader mobile progress bar page "point" 2024-12-23 02:20:35 +01:00
schroda b51d8e5f66 Fix reader mobile progress bar page "point" styling
The points representing a page were only visible on read pages (page < current page) and for all next pages it was basically invisible
2024-12-23 02:20:34 +01:00
schroda 64b0dc2646 Fix opening manga page from chapter transition page
Regression f5642af219
2024-12-23 01:58:59 +01:00
schroda 29dd9797a8 Hide "default settings" footnote in reader layout default settings 2024-12-23 01:06:53 +01:00
schroda 1ea7807f99 Properly position "track" button in track search
Regression a4f1aa3234
2024-12-23 00:59:45 +01:00
schroda 242488692d Remove passing non-existent prop 2024-12-22 22:04:46 +01:00
schroda 6001779434 Change reader background based on setting
Regression f5642af219
2024-12-22 22:03:29 +01:00
schroda 056db542df Add missing padding top in reader mobile header
Regression d844ad3f5d
2024-12-22 22:02:22 +01:00
schroda 0ea2f93651 Revert "Render reader desktop nav bar content only when visible"
This reverts commit f141a5ae66.
2024-12-22 21:53:03 +01:00
schroda 9ea30ee850 Fix opening hidden progress bar
Regression 7e9684b7d3
2024-12-22 21:52:48 +01:00
schroda 4cc38a96db Fix lint issue 2024-12-22 21:45:34 +01:00
schroda 11455427bf Prevent reader page placeholder from getting too long in height
the "SpinnerImage" has a default height styling of 100% which caused the loading placeholder to take up all the available scroll height
2024-12-22 16:07:55 +01:00
schroda 294a6f45a4 Extract "ReaderProgressBarSlot" from "StandardReaderProgressBar" 2024-12-22 13:53:52 +01:00
schroda 7e9684b7d3 Render progress bars only when visible 2024-12-22 13:53:51 +01:00
schroda f141a5ae66 Render reader desktop nav bar content only when visible 2024-12-22 00:48:24 +01:00
schroda 948e2564fa Improve memoization of reader desktop nav bar 2024-12-22 00:48:23 +01:00
schroda f1f660a546 Memoize "withPropsFrom" HOC 2024-12-22 00:48:22 +01:00
schroda 34ad331a71 Improve memoization of page rendering 2024-12-22 00:48:22 +01:00
schroda 58c402dd0e Memoize components 2024-12-22 00:48:21 +01:00
schroda f5642af219 Use HOC for reader context usage 2024-12-22 00:48:18 +01:00
schroda 34f484a946 Redirect to correct page after track oauth login
Regression introduced with cff0ed5ec3
2024-12-22 00:37:09 +01:00
schroda 9e93a78a07 Use "getErrorMessage" everywhere 2024-12-21 23:27:03 +01:00
schroda a4f1aa3234 Prevent "EmptyViewAbsoluteCentered" from overlapping content
Regression 1f7fe5f20e
2024-12-21 23:22:48 +01:00
schroda 570b831604 Extract context types 2024-12-20 21:42:54 +01:00
schroda 9d37c8bc15 Rename context types 2024-12-20 21:35:00 +01:00
schroda 28d0b470bf Cancel confirmation dialog on backdrop click 2024-12-20 19:45:20 +01:00
schroda c61831351a Save unsubmitted source filters on search save 2024-12-20 19:27:53 +01:00
schroda 1f7fe5f20e Handle long extra messages in EmptyView 2024-12-20 19:23:56 +01:00
schroda 083f98e9f6 Show error on i18n language change 2024-12-20 17:25:46 +01:00
schroda 3949363474 Include actual error in snackbar 2024-12-20 17:24:40 +01:00
schroda 91a1f75de6 Properly center loading placeholders of non reader images 2024-12-20 13:06:12 +01:00
schroda 90934b164a Properly pass "retryKeyPrefix" to "SpinnerImage" 2024-12-20 13:06:12 +01:00
schroda acab34debc Keep overlay closed on open reader 2024-12-20 13:06:11 +01:00
schroda 528dcaafab Add scanlator to reader desktop nav bar 2024-12-20 13:06:10 +01:00
schroda 713326d1a2 Delete global reader settings on reset
When resetting a whole settings tab, the whole metadata can be deleted from the server
2024-12-20 13:06:05 +01:00
schroda a3deea5b4b Properly center chapter transition page
After changes in e4253633c9 the transition page content wasn't properly centered anymore in the single/double reading mode depending on the applied reader settings (scale type, stretch, reader width)
2024-12-18 00:33:03 +01:00
schroda 60b541a7e5 Add option to reset image preload amount 2024-12-17 16:53:01 +01:00