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.
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
Instead of getting the whole download status, which contains all queued/active downloads, the download status should be read from the cache for only the required chapters
Chapter numbers can change from e.g. "1" to "2.1" and in that case missing chapters were detected.
However, with these weird chapter numbers it's not clear if a chapter is actually missing or not, thus, they should not cause a missing chapter warning
In case the outdated metadata get successfully deleted and the updated metadata fail to commit, metadata gets lost, due to not being able to apply the migrations again since the outdated metadata have already been deleted
Automatically choose the progress bar position based on the available space.
Previously it was only possible to automatically switch from a horizontal to a vertical position but not the other way around
By the time the scroll area got scrolled to the start of the visible pages, the previous/next page wasn't yet shown and thus, the scrollable area wasn't updated yet.
Thus, in case the scrollable area grew in width due to the page change, the start never got scrolled into view due to triggering the logic too early.
While iOS does not support customizing the scrollbar, it seems there is a bug when the width and/or height gets set.
(see MediaQuery#getScrollbarSize) When inserting an empty div with forced scrollbars and calculating the scrollbar size, for some reason on iOS it has a scrollbar that affects the available size, which is not possible.
In case no keys had to be deleted it always returned an empty object which broke the whole metadata migration and resulted in the final metadata to always fall back to the default values
The "appliedMigrationId" was converted to it's index of the "METADATA_MIGRATIONS" and then was compared to the "migration id" which starts at 1 instead of 0
The wrong chapter list was used.
"chapters" is the filtered list of chapters, which e.g. doesn't contain duplicated chapters.
This caused the "chapter source order" to potentially be higher than the total chapters of the manga.
The end result of this was that the fetched state of the pages wasn't properly detected causing errors due to rendering the reader before it was in the correct state