schroda
a45338647e
Fix infinite scroll intersection info calculation
...
Scrollbars need to be considered since they decrease the available viewport size in which the element can be visible
2025-02-10 22:40:53 +01:00
schroda
eb7397e639
Fix reader image preload for resume "end" mode
...
In this case the preload direction was incorrect and tried to preload trailing images instead of leading ones
2025-02-10 22:40:52 +01:00
schroda
6b48844c19
Fix current page index for leading/trailing chapter
2025-02-10 22:40:50 +01:00
schroda
174d850093
Preload previous/next chapter in reader
2025-02-10 22:40:49 +01:00
schroda
16c1edaa52
Add release changelog creation script
2025-02-10 00:14:06 +01:00
schroda
61bbadc72a
Extract commit changelog creation logic
2025-02-10 00:14:03 +01:00
schroda
7a08a0035f
Extract translation changelog creation logic
2025-02-10 00:13:17 +01:00
schroda
a6dbcd0540
Rename "createReleaseChangelog" to "createCommitChangelog"
2025-02-09 23:22:37 +01:00
schroda
d8a682537a
Fix "createReleaseChangelog" script
2025-02-09 23:19:51 +01:00
schroda
ece1f4c465
Create "release" github action
2025-02-09 23:09:00 +01:00
schroda
0b752c168c
Internationalize system theme mode
2025-02-09 23:06:44 +01:00
schroda
a7df8eb0f4
Show image loading placeholder only when visible
...
The MUI spinner impacts the cpu usage.
While only a few of them don't matter, rendering multiple of them can impact the cpu usage.
This can be a problem in the reader in case a chapter with a lot of chapters is rendered and a continuous reading mode is being used.
In such a case the cpu usage stays increased until all pages have been loaded
2025-02-08 20:12:41 +01:00
schroda
a4e9e8f264
Introduce "useIntersectionObserver" hook
2025-02-08 19:45:41 +01:00
schroda
050094c991
Update styling of "manga open source" button
2025-02-08 16:16:32 +01:00
schroda
f633059083
Rename "CustomIconButton" to "CustomButton"
2025-02-08 16:03:37 +01:00
schroda
cae52fd782
Add "blend mode" to "custom color filter"
2025-02-08 01:49:37 +01:00
schroda
9d3aeafe0e
Use "BasePager" for infinite scroll chapter change detection
...
There can be cases where when scrolling backward/forward the first/last page never gets visible in the viewport due to a large width/height of another page.
In that case the intersection observer would never trigger and thus, the chapter wouldn't get changed.
By using the Pager, which always takes up the full width/height, this problem will not be possible, since the start/end of the Pager always enters or leaves the viewport.
2025-02-05 22:25:35 +01:00
schroda
b12e28346c
Improve reader infinite scroll chapter change detection
...
A 10% intersection threshold does not work for pages that are so long that 10% of the page will never be in the viewport
2025-02-05 21:23:20 +01:00
schroda
187693ce5a
Properly handle not skipping duplicate chapters
...
The filtered chapter list of the reader state always incorrectly filtered out duplicated chapters even while the setting was disabled
2025-02-05 20:05:36 +01:00
schroda
a32c88a549
Reset "ReaderChapterViewer" min width/height on "ReadingMode" change
2025-02-05 15:48:55 +01:00
schroda
5e8b5545a6
Add comments to functions
2025-02-05 15:26:40 +01:00
schroda
34ebcc4f4c
Improve naming of functions and variables
2025-02-05 15:17:48 +01:00
schroda
155f58b92d
Consider only relevant element intersection for open prev/next chapter
...
In the "vertical mode" intersection changes for the left or right side of the element do not matter.
Same for "horizontal mode" the other way around.
If not handled accordingly, it would cause unwanted chapter changes.
2025-02-05 15:17:46 +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
19f2d99345
Center "ReaderChapterViewers"
...
The viewers can have different sizes which caused theme to not be properly centered.
E.g. for the "vertical mode" in case "chapter 1" is greater in width than "chapter 2", the pages of "chapter 2" were not correctly centered due to the "viewers" having different widths.
2025-02-05 00:34:44 +01:00
schroda
636f48107f
Prevent "ReaderChapterViewer" from overlapping each other
...
Seems like not all browsers handle
width/height: 100%
min-width/min-height: fit-content
correctly.
the "min" setting just never applies and the size is stuck at 100%.
2025-02-04 23:11:34 +01:00
schroda
36cb545156
Properly detect scrollbar for mouse drag scrolling
2025-02-04 22:35:01 +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
b01b23b069
Remove context usage from ReaderChapterViewer
...
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
4789a74785
Add option to open specific chapter via "useOpenChapter"
2025-02-03 17:17:35 +01:00
schroda
45b4874348
Remove unnecessary keys
2025-02-03 17:17:35 +01:00
schroda
c79ccf3523
Improve memoization of "ReaderTransitionPage"
...
- use chapter properties instead of chapter object
- only pass "handleBack" in case the transition page is for the first or last chapter
2025-02-03 17:17:35 +01:00
schroda
d73bb31df9
Pass non "source props" to "prop source creators" in "withPropsFrom" HOC
2025-02-03 17:17:35 +01:00
schroda
91e8b70d35
Rename "initialChapter" to "chapterForDuplicatesHandling"
2025-02-03 17:17:35 +01:00
schroda
a80e8885fb
Introduce "getReaderOpenChapterLocationState" function
2025-02-03 17:17:35 +01:00
schroda
a6f015d5e3
Add comment
2025-02-03 16:30:10 +01:00
schroda
6d47ab05c1
Improve mouse drag detection
...
Ignore mouse movements in directions where the element does not have a content overflow and thus, scrolling is not possible
2025-02-03 16:30:08 +01:00
schroda
441cdaa6e7
Handle line breaks in tracker search entry summaries
2025-02-03 16:30:07 +01:00
schroda
8ddb259c82
Prevent tooltip on disabled button warning
2025-02-02 00:54:03 +01:00
schroda
dc9f6fc863
Fix "Uncaught ResizeObserver loop completed with undelivered notifications" error
...
Was caused due to creating a temporary div inside a resize observer callback.
By moving the temp div outside the viewport, it does not the trigger resize observer again
2025-01-31 01:54:39 +01:00
schroda
2c4a17b32f
Ensure to always have one page in reader
...
Current logic requires at least one page.
In case a chapter did not have any page a TypeError occured
2025-01-30 00:19:05 +01:00
schroda
3698c19aba
Properly enable cors for images by default
2025-01-26 17:18:27 +01:00
schroda
a81c3c6afa
Use dynamic color schemes on manga page
2025-01-26 04:21:00 +01:00
schroda
25e3fc7808
Load images with cors allowed
...
Without allowing cors it is e.g. not possible to extract colors from an image
2025-01-26 04:20:59 +01:00
schroda
2579ba92a3
Use "img" element instead of css "background image"
...
CSS does not support loading image with cors allowed
2025-01-26 03:49:51 +01:00
schroda
a56fd08bf6
Include http status on rest fetch failure
2025-01-26 03:30:35 +01:00
schroda
2a4afd642d
Set proper color for active chapter card in reader
2025-01-26 03:29:08 +01:00
schroda
5d52fc4455
Inherit color for missed icon buttons
2025-01-26 03:26:24 +01:00
schroda
b7fc1ae6ff
Extract theme context logic into its own provider
2025-01-25 19:22:24 +01:00
schroda
ce6722d584
Male library "grid layout" setting global
2025-01-25 00:12:56 +01:00
schroda
b60b799649
Fix auto webtoon mode detection
...
E.g. in case the entry has a tag "Webtoons" this never triggered the auto webtoon mode due to "Webtoons" not being in string "webtoon".
2025-01-23 20:46:42 +01:00
schroda
b67c9c4e44
Fix reader chapter transition page positioning in double page mode
...
Regression 649a17c2ae
2025-01-23 20:36:19 +01:00
schroda
e5b9767daa
Fix page width with static nav bar
...
Regression 7fad96dab7
2025-01-23 14:10:13 +01:00
schroda
c42e51b6f9
Infer server port only in dev env
2025-01-23 13:15:08 +01:00
schroda
2cfbaf8148
Use "useNavBarContext" hook everywhere
2025-01-23 13:15:06 +01:00
schroda
480eaf5a08
Extract app page history from nav bar context
2025-01-23 13:14:58 +01:00
schroda
9b883a5170
Fix chapter list range selection
2025-01-21 19:23:11 +01:00
schroda
c47889c2e3
Extract reader pages context default values
2025-01-21 19:19:31 +01:00
schroda
eeb811bf2d
Handle flex "column-reverse" for mouse drag scrolling inertia
2025-01-21 19:19:29 +01:00
schroda
18a46c0a28
Handle flex "row-reverse" for mouse drag scrolling inertia
2025-01-21 19:19:28 +01:00
schroda
649a17c2ae
Move "ReaderTransitionPage" to "ReaderViewer"
2025-01-21 19:19:27 +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
ca1c95cdfe
Show chapter transition warning for mobile progress bar open chapter buttons
2025-01-21 19:19:20 +01:00
schroda
b7cb245abc
Rename "getImageWidthStyling" to "getReaderImageStyling"
2025-01-18 23:13:56 +01:00
schroda
7f649296b9
Extract logic from "Reader" into hooks
2025-01-18 22:41:54 +01:00
schroda
19f83d5237
Extract hooks from utils file
2025-01-18 22:07:59 +01:00
schroda
3d120429ac
Only set chapter card icon button color in reader mode
2025-01-17 16:12:15 +01:00
schroda
8e1d9b3106
Change reader non-static nav bar icon
2025-01-17 01:38:19 +01:00
schroda
d95396ecb0
Consider reader nav bar width and scrollbars for auto scrollbar position
2025-01-17 01:26:09 +01:00
schroda
c227570b93
Fix closing desktop nav bar after change to none static
2025-01-17 01:26:08 +01:00
schroda
9ac1009e22
Properly update reader desktop nav bar download button
...
Did not update according to download updates due to not subscribing to the fragment changes
Regression 257c0c8e10
2025-01-17 01:26:07 +01:00
schroda
7818fb450d
Fix text color of active chapter in chapter list of reader
2025-01-17 01:26:06 +01:00
schroda
5391bc256d
Add "ying & yang" theme
2025-01-17 01:26:05 +01:00
schroda
f7b21b1d7f
Update "tree frog green" theme
2025-01-17 01:26:04 +01:00
schroda
c36a0f8d02
Update "orange juice" theme
2025-01-17 01:26:03 +01:00
schroda
0b9697ec29
Update "minty miracles" theme
2025-01-17 01:26:01 +01:00
schroda
7da4dc7d39
Update "mountain sunset" theme
2025-01-17 01:26:00 +01:00
schroda
a161aa663c
Update "rosegold" theme
2025-01-17 01:25:59 +01:00
schroda
254a8cb1a7
Update "lavender" theme
2025-01-17 01:25:58 +01:00
schroda
a22a4bf546
Switch to "colorSchemes" from "palette" API in mui theme
...
"colorSchemes" is the preferred api starting from mui v6
2025-01-17 01:25:55 +01:00
schroda
9255386b1c
Properly check if chapter should be deleted after reading it
...
In case the current chapter should get deleted after reading it, it only worked in case it was already marked as read due to checking the read status from the chapter itself instead of the chapter update patch input
2025-01-16 14:19:18 +01:00
schroda
92f64ef009
Handle single page chapters for download ahead
2025-01-16 14:07:21 +01:00
schroda
22011d4d6d
Support search by source id in library
2025-01-16 13:33:16 +01:00
schroda
a96bc2c1da
Delete chapter when read even if already marked as read
...
ReaderControls#useUpdateCurrentPageIndex:
On a page change the chapter update needs to be always queued since the deletion of downloaded chapters while reading logic is in the "ReaderService#updateChapter" function.
Thus, when the update is prevented here, this logic would never get triggered.
ReaderService#useUpdateChapter:
In case the read status or lastPageRead of a chapter did not change, the update was not triggered.
However, there might still be chapter downloads that need to be de deleted, which was never handled in such a case.
2025-01-16 13:22:13 +01:00
schroda
ef08799fc0
Render filtered chapters in ChapterList
...
Regression 257c0c8e10
2025-01-16 12:25:24 +01:00
schroda
5683c07712
Prevent "migrate dialog" from closing
...
Due to the scrollbar disappearing the dimension of the manga grid items changed which caused them to get unmounted and re-rendered again.
This then caused the dialog to get closed since the dialog is rendered in the manga grid item component
2025-01-13 03:26:07 +01:00
schroda
898fc6614f
Increase virtuoso grid viewport
2025-01-13 02:17:09 +01:00
schroda
74c61a5a29
Improve manga grid/list rendering
2025-01-13 01:29:40 +01:00
schroda
63a6cfcfb3
Add merge function for "DownloadStatus" "queue" field
2025-01-12 20:55:08 +01:00
schroda
e25aa98365
Do not update "download status" on "download updates"
...
For large download queues this makes the app unusable.
At the moment this is not needed anyway and once it is, it needs to be improved and only be done in the "download queue" page since the queue is only use there
2025-01-12 20:47:16 +01:00
schroda
7ed345cf87
Render "manga track dialog" only when opened
2025-01-12 20:28:24 +01:00
schroda
ba52e70dbb
Improve "Updates" render performance
2025-01-12 20:28:23 +01:00
schroda
97dba923b4
Improve "chapter list" render performance
...
affected components:
- ChapterList
- ReaderChapterList
2025-01-12 20:28:22 +01:00
schroda
e7c3c8609e
Improve "DownloadQueue" render performance
2025-01-12 20:28:21 +01:00
schroda
10a77722cc
Remove outdated "download types" from apollo cache
2025-01-12 20:28:20 +01:00
schroda
77973df0ff
Show non downloading state while partially downloaded
...
The state wasn't shown in case the chapter was partially downloaded
2025-01-12 20:28:20 +01:00
schroda
257c0c8e10
Move download status subscription to "ChapterCard"
...
Only re-render chapters whose download status has changed instead of the whole list everytime a download status change was received
2025-01-12 20:28:18 +01:00