Commit Graph

37 Commits

Author SHA1 Message Date
schroda
174d850093 Preload previous/next chapter in reader 2025-02-10 22:40:49 +01:00
schroda
9b58a94f98 Fix image preload amount for current chapter
For the current chapter the "pages to render" always include the current page
2025-02-05 01:27:42 +01:00
schroda
2ec42d962a Remove context usage from ReaderPage
In case many chapters are rendered, even just the HOC wrapper component re-render due to the context change increases the render time.

Thus, getting rid of these HOC wrapper re-renders by moving the context usage up to the ReaderViewer decreases the render time.
2025-02-03 17:17:35 +01:00
schroda
4a9d2903b8 Add infinite scroll to reader 2025-02-03 17:17:35 +01:00
schroda
e5b9767daa Fix page width with static nav bar
Regression 7fad96dab7
2025-01-23 14:10:13 +01:00
schroda
db7aad58ec Convert reader image placeholder styling to vw/vh 2025-01-21 19:19:25 +01:00
schroda
7fad96dab7 Convert reader image styling to vw/vh
Preparation for infinite scroll, since there will be a wrapper which fits its content in width and height, thus, percentage based dimension won't work anymore
2025-01-21 19:19:22 +01:00
schroda
da600bcdec Extract reader pages wrapper styling 2025-01-21 19:19:21 +01:00
schroda
b7cb245abc Rename "getImageWidthStyling" to "getReaderImageStyling" 2025-01-18 23:13:56 +01:00
schroda
288fee590d Extract "apply reader width" check into function 2025-01-09 02:11:44 +01:00
schroda
f13e8eb412 Fix converting pages to double page mode 2024-12-31 17:17:54 +01:00
schroda
f3792edac0 Ignore visible transition pages on page change in continuous pager 2024-12-31 17:03:42 +01:00
schroda
8c147b797a Properly detect if image fills whole viewport
The thresholds are only for detecting if a specific side of the image is in the viewport.

For the check if the image fills the whole viewport, the thresholds incorrectly detect this depending on the readers reading direction.

E.g. in the continuous horizontal pager with theme direction LTR and reader reading direction RTL, the left threshold will be the total width of the viewport plus one which will lead to out of view images to be detected as completely filling the viewport
2024-12-31 16:51:28 +01:00
schroda
d6a3d02189 Fix page jumping when scrolling continuous pagers
Both hardcoded thresholds (MIN_VISIBLE_PX 0 or 1) break the "first visible image" detection in different kind of ways.

With 1 it always incorrectly jumps to the next page when resuming a chapter, since the page to resume will bet at 0px.

With 0 it fails to detect the correct first visible image when scrolling (automatically not via wheel or touch) to another page.
This happens when there is no gap between the pages because in this case the start of the current image and the end of the previous image are at the same coordinate.
Thus, the previous image is still incorrectly detected as visible since the end still aligns with the viewports start/end
2024-12-31 16:43:46 +01:00
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
1d955257dd Prevent page jump on scroll to page
When an unloaded page got scrolled into view, the current page got incorrectly set to the next page once the page got loaded
2024-12-31 02:46:07 +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
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
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
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
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
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