Commit Graph

180 Commits

Author SHA1 Message Date
schroda
a0df80f60a Fix opening previous/next page via user action
Regression 55dc9471d9
2024-12-31 04:24:47 +01:00
schroda
f808614e6c Prevent layout shifts in continuous pagers
I was unable to find a fix for this problem, thus, the only solution I see is disabling this functionality for the continuous readers.

Due to preloading leading pages, the layout got shifted once the pages got loaded.
This messed with the scroll position which caused the top of the scrolled into views pages to not be at the top of the viewport anymore.
2024-12-31 02:51:20 +01:00
schroda
740acf63fc Show default "reading mode" setting
Regression 6ca6864035
2024-12-31 01:08:13 +01:00
schroda
95f95e770f Prevent TypeError and incorrect state updates for "pagesSpreadState"
Page spread state updates of an already closed chapter caused TypeErrors or incorrect state updates.
2024-12-30 21:03:13 +01:00
schroda
7c98bab43b Prevent TypeError and incorrect state updates for "pageLoadStates"
Page load state updates of an already closed chapter caused TypeErrors or incorrect state updates.
2024-12-30 21:03:10 +01:00
schroda
45f46a05d0 Optionally show preview or "reading mode" and "tap zone overlay"
Shows a preview when opening the reader or when the values change
2024-12-30 16:51:39 +01:00
schroda
f3962646e6 Hide "tap zone overlay" on user action 2024-12-30 16:50:54 +01:00
schroda
6a32395234 Always show "tap zone layout" preview when necessary
In case the "tap zone layout" setting value got changed from or to the same value as the default value, the preview was never shown due to the canvas being reused and therefore not triggering the useEffect
2024-12-30 16:32:30 +01:00
schroda
6ca6864035 Make active reading mode default settings editable in reader 2024-12-30 14:52:09 +01:00
schroda
6bf3e297ef Open previous/next chapter at end of continuous pager via hotkey
For continuous pagers the chapter transition page is always visible regardless of the current "transitionPageMode".
However, this was not properly checked and thus, it wasn't considered to be visible and instead of opening the previous/next chapter, the transition page got set to be visible first and only with the second hotkey press did the chapter get opened
2024-12-30 14:12:11 +01:00
schroda
530ae1578f Prevent invalid values for "auto scroll speed"
The min/max limit was only acknowledged when the value was changed via MUIs step logic.
In case the number got inputted via keystrokes the limits did not get applied
2024-12-29 23:41:26 +01:00
schroda
d90767c71c Add "increase/decrease auto scroll speed" hotkeys 2024-12-29 23:41:24 +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
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
6dd6fd8c51 Reduce "auto scroll speed" quick setting size 2024-12-27 04:38:39 +01:00
schroda
7c0ce65683 Fix auto scroll related tsc issues 2024-12-27 03:36:34 +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
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
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
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
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
d3e8f713ab Add elevation to reader mobile overlay 2024-12-23 02:57:34 +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