From 283bc1f706d70c012c9702dc3f9f8e5244be14fd Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Tue, 31 Dec 2024 02:26:01 +0100 Subject: [PATCH] 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 --- src/modules/reader/screens/Reader.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/reader/screens/Reader.tsx b/src/modules/reader/screens/Reader.tsx index 835ce4c6..0dc05ffb 100644 --- a/src/modules/reader/screens/Reader.tsx +++ b/src/modules/reader/screens/Reader.tsx @@ -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(); 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,