Commit Graph

35 Commits

Author SHA1 Message Date
schroda
f8d3be3911 Do not check for state change before set state call
Due to not including the states in the dependency array (to improve render performance), they do not include updated data and might cause an incorrect early exit.

E.g. in case a load error happened for a page whose loaded flag was already set to true, the pages load state never got updated again
2024-12-30 21:21:09 +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
55dc9471d9 Hide chapter transition page in single/double pagers
Transition page got opened and never closed again due to not correctly detecting that a transition page is currently visible
2024-12-30 19:57:18 +01:00
schroda
f3962646e6 Hide "tap zone overlay" on user action 2024-12-30 16:50:54 +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
8eae025d8f Use "coerceIn" util function 2024-12-29 23:41:27 +01:00
schroda
a943d2f2bc Extract logic from "ReaderViewer" into functions and hooks 2024-12-29 21:38:31 +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
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
6b0df5329b Move "useHandleProgressDragging" to "ReaderControls" 2024-12-27 02:51:38 +01:00
schroda
33e184ba18 Add "auto webtoon mode" option to reader 2024-12-27 02:51:35 +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
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
34ad331a71 Improve memoization of page rendering 2024-12-22 00:48:22 +01:00
schroda
e4253633c9 Properly center images in "single page mode"
While the reader width was set images weren't centered correctly in the images wrapper element
2024-12-17 01:27:42 +01:00
schroda
38bcf4aecc Resize images properly to set reader width
Images didn't shrink in size while the reader width was set and the original size was used
2024-12-17 01:27:02 +01:00
schroda
f51446995a Fix "continuous vertical pager" unintentional page gaps
Depending on the screen size and e.g. the set "reader width" pages might not have filled out the full img elements size due to "object-fit contain".
This was caused due to the image wrappers flex container "align-items center" which slightly reduced the images width to some ".xy" number (e.g. instead of wrappers width 258px, the images were something like 257.83px)
2024-12-16 22:09:00 +01:00
schroda
15a70760ca Fix double page with different dimensions
In case two pages were displayed with different dimensions, the bigger page might take up more than 50% of the screen.
In this case the bigger page got limited to 50% which caused in to unintentionally get reduced in size
2024-12-16 22:08:59 +01:00
schroda
942d8699c1 Add "Webtoon" reading mode 2024-12-16 22:08:58 +01:00
schroda
74f78e40d4 Remove custom profiles
Instead of "custom profiles" each "reading mode" acts as a profile and has its own settings
2024-12-16 15:50:28 +01:00
schroda
aaf7fb7b30 Prevent hiding overlay on page change through overlay 2024-12-13 02:15:18 +01:00
schroda
9a8655db2f Always use "secondary page index" as "current page index" when available
There was an issue where one had to click twice at the end of a chapter in the "double page mode" to get to the chapter transition page.
This was caused due to setting the "primary page index" as the "current page index" and thus, when opening the next page, it got changed to the "secondary page index". However, this page was already visible and therefore, there was no visual change.
2024-12-12 13:21:29 +01:00
schroda
858c3b4bcf Display active profile for default value
In case the profile was not set and the default value got used, there was no indication of the active profile.
2024-12-12 02:09:19 +01:00
schroda
8c4ff516c0 Rename "theme.tsx" to "ThemeCreator.ts" 2024-12-11 18:02:03 +01:00
schroda
b3e3d94bda Move "theme.tsx" to proper module 2024-12-11 13:57:24 +01:00
schroda
1387a016c7 Fix page changes via click/hotkey in horizontal pager
Due to the way the pages got scrolled into view, the current page was not changed to the new page.
This then prevented the previous/next page to get opened via click/hotkey actions
2024-12-09 15:07:52 +01:00
schroda
be0d1dbf30 Add logic to retry all errored pages 2024-12-09 02:38:37 +01:00
schroda
965aa7215c Update chapter 2024-12-09 02:38:37 +01:00
schroda
916abd3bb1 Resume chapter at specific page
- open from outside reader
 - is read
  - yes: 1st page
  - no : last read page
- inside reader via
 - chapter selection: first page
 - previous chapter : last page
 - next chapter     : first page
2024-12-09 02:38:37 +01:00
schroda
fb31a92cd7 Reader transition page 2024-12-09 02:38:37 +01:00
schroda
7cf78e771a Reader page rendering 2024-12-09 02:38:37 +01:00
schroda
0ae9d9ebb2 Custom reader profiles 2024-12-09 02:38:37 +01:00
schroda
a607f7f368 Reader settings 2024-12-09 02:38:37 +01:00
schroda
7434ed0152 Reader progress bars 2024-12-09 02:38:37 +01:00