enhance(frontend): improve pref manager

This commit is contained in:
syuilo 2025-03-13 09:02:38 +09:00
parent 4a73feb041
commit 9b2af53025
1 changed files with 3 additions and 2 deletions

View File

@ -94,6 +94,7 @@ export type PreferencesDefinition = Record<string, {
export class ProfileManager { export class ProfileManager {
private storageProvider: StorageProvider; private storageProvider: StorageProvider;
public profile: PreferencesProfile; public profile: PreferencesProfile;
public cloudReady: Promise<void>;
/** /**
* static / state (static ) * static / state (static )
@ -120,7 +121,7 @@ export class ProfileManager {
this.r[key] = ref(this.s[key]); this.r[key] = ref(this.s[key]);
} }
this.fetchCloudValues(); this.cloudReady = this.fetchCloudValues();
// TODO: 定期的にクラウドの値をフェッチ // TODO: 定期的にクラウドの値をフェッチ
} }
@ -226,7 +227,7 @@ export class ProfileManager {
const record = this.getMatchedRecordOf(key); const record = this.getMatchedRecordOf(key);
if (record[2].sync && Object.hasOwn(cloudValues, key) && cloudValues[key] !== undefined) { if (record[2].sync && Object.hasOwn(cloudValues, key) && cloudValues[key] !== undefined) {
const cloudValue = cloudValues[key]; const cloudValue = cloudValues[key];
if (cloudValue !== this.s[key]) { if (!deepEqual(cloudValue, record[1])) {
this.rewriteRawState(key, cloudValue); this.rewriteRawState(key, cloudValue);
record[1] = cloudValue; record[1] = cloudValue;
console.log('cloud fetched', key, cloudValue); console.log('cloud fetched', key, cloudValue);