From 3d09eb761c275d84b2e4f4eba82c8bd114e2a7e8 Mon Sep 17 00:00:00 2001 From: chrox Date: Mon, 2 Dec 2024 13:51:22 +0100 Subject: [PATCH] Make sure settings are loaded before loading library, closes #2 --- apps/readest-app/src-tauri/src/lib.rs | 2 ++ apps/readest-app/src/app/library/page.tsx | 13 ++++++++++--- apps/readest-app/src/app/reader/page.tsx | 1 - apps/readest-app/src/services/appService.ts | 1 + 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/readest-app/src-tauri/src/lib.rs b/apps/readest-app/src-tauri/src/lib.rs index 15df2825..465f223f 100644 --- a/apps/readest-app/src-tauri/src/lib.rs +++ b/apps/readest-app/src-tauri/src/lib.rs @@ -55,6 +55,8 @@ pub fn run() { let win_builder = win_builder.decorations(false).transparent(true); win_builder.build().unwrap(); + // let win = win_builder.build().unwrap(); + // win.open_devtools(); #[cfg(target_os = "macos")] menu::setup_macos_menu(&app.handle())?; diff --git a/apps/readest-app/src/app/library/page.tsx b/apps/readest-app/src/app/library/page.tsx index 9489cd2c..82e1f472 100644 --- a/apps/readest-app/src/app/library/page.tsx +++ b/apps/readest-app/src/app/library/page.tsx @@ -5,6 +5,7 @@ import { useState, useRef } from 'react'; import { useEnv } from '@/context/EnvContext'; import { useLibraryStore } from '@/store/libraryStore'; +import { useSettingsStore } from '@/store/settingsStore'; import Spinner from '@/components/Spinner'; import LibraryHeader from '@/app/library/components/LibraryHeader'; @@ -13,6 +14,7 @@ import Bookshelf from '@/app/library/components/Bookshelf'; const LibraryPage = () => { const { envConfig, appService } = useEnv(); const { library: libraryBooks, setLibrary } = useLibraryStore(); + const { setSettings } = useSettingsStore(); const [loading, setLoading] = useState(false); const isInitiating = useRef(false); const [isSelectMode, setIsSelectMode] = useState(false); @@ -22,12 +24,17 @@ const LibraryPage = () => { isInitiating.current = true; const loadingTimeout = setTimeout(() => setLoading(true), 200); - envConfig.getAppService().then(async (appService) => { - console.log('Loading library books...'); + const initLibrary = async () => { + const appService = await envConfig.getAppService(); + const settings = await appService.loadSettings(); + setSettings(settings); setLibrary(await appService.loadLibraryBooks()); + if (loadingTimeout) clearTimeout(loadingTimeout); setLoading(false); - }); + }; + + initLibrary(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/apps/readest-app/src/app/reader/page.tsx b/apps/readest-app/src/app/reader/page.tsx index d95d819c..30321968 100644 --- a/apps/readest-app/src/app/reader/page.tsx +++ b/apps/readest-app/src/app/reader/page.tsx @@ -23,7 +23,6 @@ const ReaderPage = () => { const appService = await envConfig.getAppService(); const settings = await appService.loadSettings(); setSettings(settings); - console.log('initializing library in reader'); setLibrary(await appService.loadLibraryBooks()); }; diff --git a/apps/readest-app/src/services/appService.ts b/apps/readest-app/src/services/appService.ts index b01f7482..f011858b 100644 --- a/apps/readest-app/src/services/appService.ts +++ b/apps/readest-app/src/services/appService.ts @@ -210,6 +210,7 @@ export abstract class BaseAppService implements AppService { } async loadLibraryBooks(): Promise { + console.log('Loading library books...'); let books: Book[] = []; const libraryFilename = getLibraryFilename();