Wait till reader setting are set to show previews

Sometimes the reader settings state took too long to get set and the previews were shown using the default settings first, since they are set as the default values of the reader settings context, and then again for the final settings
This commit is contained in:
schroda
2024-12-31 02:26:01 +01:00
parent 14044af1cd
commit 283bc1f706

View File

@@ -248,6 +248,7 @@ const BaseReader = ({
}, [pagesResponse.data?.fetchChapterPages?.pages]);
// set settings state
const [areSettingsSet, setAreSettingsSet] = useState(false);
useEffect(() => {
const mangaFromResponse = mangaResponse.data?.manga;
if (!mangaFromResponse || defaultSettingsResponse.loading || defaultSettingsResponse.error) {
@@ -280,6 +281,7 @@ const BaseReader = ({
const finalSettings = getReaderSettingsFor(mangaFromResponse, profileSettings);
setSettings(finalSettings);
setAreSettingsSet(true);
}, [mangaResponse.data?.manga, defaultSettings]);
// show setting previews on change or when open reader
@@ -288,7 +290,7 @@ const BaseReader = ({
const previousTapZoneInvertMode = useRef<IReaderSettingsWithDefaultFlag['tapZoneInvertMode']>();
const isInitialPreview = useRef(true);
useEffect(() => {
if (isLoading || error) {
if (isLoading || error || !areSettingsSet) {
return;
}
@@ -316,6 +318,7 @@ const BaseReader = ({
}, [
isLoading,
error,
areSettingsSet,
readingMode.value,
readingMode.isDefault,
tapZoneLayout.value,