From 01ff68747279269190a9bb601b607ab3ee279784 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Wed, 29 Jan 2025 12:29:26 +0100 Subject: [PATCH] sync: fix redundant progress sync when changing window size (#265) --- apps/readest-app/src-tauri/tauri.conf.json | 2 +- apps/readest-app/src/app/reader/hooks/useProgressSync.ts | 9 ++++----- apps/readest-app/src/hooks/useSync.ts | 7 +------ 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/apps/readest-app/src-tauri/tauri.conf.json b/apps/readest-app/src-tauri/tauri.conf.json index ffb51dcf..d919131e 100644 --- a/apps/readest-app/src-tauri/tauri.conf.json +++ b/apps/readest-app/src-tauri/tauri.conf.json @@ -17,7 +17,7 @@ "default-src": "'self' 'unsafe-inline' blob: customprotocol: asset: http://asset.localhost ipc: http://ipc.localhost", "connect-src": "'self' blob: asset: http://asset.localhost ipc: http://ipc.localhost https://*.sentry.io https://*.posthog.com https://*.deepl.com https://*.wikipedia.org https://*.wiktionary.org https://*.supabase.co https://*.readest.com wss://speech.platform.bing.com https://*.cloudflarestorage.com", "img-src": "'self' blob: data: asset: http://asset.localhost https://*", - "style-src": "'self' 'unsafe-inline' blob: asset: http://asset.localhost https://cdn.jsdelivr.net", + "style-src": "'self' 'unsafe-inline' blob: asset: http://asset.localhost https://cdn.jsdelivr.net https://fonts.googleapis.com", "font-src": "'self' data: asset: http://asset.localhost tauri: https://fonts.gstatic.com https://db.onlinewebfonts.com https://cdn.jsdelivr.net", "frame-src": "'self' blob: asset: http://asset.localhost", "script-src": "'self' 'unsafe-inline' 'unsafe-eval' blob: asset: http://asset.localhost https://*.sentry.io https://*.posthog.com" diff --git a/apps/readest-app/src/app/reader/hooks/useProgressSync.ts b/apps/readest-app/src/app/reader/hooks/useProgressSync.ts index 69721c85..021e5ddf 100644 --- a/apps/readest-app/src/app/reader/hooks/useProgressSync.ts +++ b/apps/readest-app/src/app/reader/hooks/useProgressSync.ts @@ -50,11 +50,10 @@ export const useProgressSync = (bookKey: string) => { }; useEffect(() => { - if (!progress) return; - if (!firstPulled.current) { - firstPulled.current = true; - pullConfig(bookKey); - } + if (!progress || firstPulled.current) return; + firstPulled.current = true; + pullConfig(bookKey); + return () => { syncConfig(); }; diff --git a/apps/readest-app/src/hooks/useSync.ts b/apps/readest-app/src/hooks/useSync.ts index 77704e12..a28d91de 100644 --- a/apps/readest-app/src/hooks/useSync.ts +++ b/apps/readest-app/src/hooks/useSync.ts @@ -1,5 +1,4 @@ import { useEffect, useState } from 'react'; -import { useEnv } from '@/context/EnvContext'; import { useSyncContext } from '@/context/SyncContext'; import { SyncData, SyncOp, SyncResult, SyncType } from '@/libs/sync'; import { useSettingsStore } from '@/store/settingsStore'; @@ -34,8 +33,7 @@ const computeMaxTimestamp = (records: BookDataRecord[]): number => { const SEVEN_DAYS_IN_MS = 7 * 24 * 60 * 60 * 1000; export function useSync(bookKey?: string) { - const { envConfig } = useEnv(); - const { settings, setSettings, saveSettings } = useSettingsStore(); + const { settings, setSettings } = useSettingsStore(); const { getConfig, setConfig } = useBookDataStore(); const config = bookKey ? getConfig(bookKey) : null; @@ -95,13 +93,11 @@ export function useSync(bookKey?: string) { case 'books': settings.lastSyncedAtBooks = maxTime; setSettings(settings); - saveSettings(envConfig, settings); break; case 'configs': if (!bookId) { settings.lastSyncedAtConfigs = maxTime; setSettings(settings); - saveSettings(envConfig, settings); } else if (bookKey && config) { config.lastSyncedAtConfig = maxTime; setConfig(bookKey, config); @@ -111,7 +107,6 @@ export function useSync(bookKey?: string) { if (!bookId) { settings.lastSyncedAtNotes = maxTime; setSettings(settings); - saveSettings(envConfig, settings); } else if (bookKey && config) { config.lastSyncedAtNotes = maxTime; setConfig(bookKey, config);