From 9b2af53025eda12262db3633d47940fab28239d8 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 13 Mar 2025 09:02:38 +0900 Subject: [PATCH] enhance(frontend): improve pref manager --- packages/frontend/src/preferences/manager.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/preferences/manager.ts b/packages/frontend/src/preferences/manager.ts index 3f3eba6389..f42a9be25f 100644 --- a/packages/frontend/src/preferences/manager.ts +++ b/packages/frontend/src/preferences/manager.ts @@ -94,6 +94,7 @@ export type PreferencesDefinition = Record<string, { export class ProfileManager { private storageProvider: StorageProvider; public profile: PreferencesProfile; + public cloudReady: Promise<void>; /** * static / state の略 (static が予約語のため) @@ -120,7 +121,7 @@ export class ProfileManager { this.r[key] = ref(this.s[key]); } - this.fetchCloudValues(); + this.cloudReady = this.fetchCloudValues(); // TODO: 定期的にクラウドの値をフェッチ } @@ -226,7 +227,7 @@ export class ProfileManager { const record = this.getMatchedRecordOf(key); if (record[2].sync && Object.hasOwn(cloudValues, key) && cloudValues[key] !== undefined) { const cloudValue = cloudValues[key]; - if (cloudValue !== this.s[key]) { + if (!deepEqual(cloudValue, record[1])) { this.rewriteRawState(key, cloudValue); record[1] = cloudValue; console.log('cloud fetched', key, cloudValue);