chore(frontend): improve preference store stability

This commit is contained in:
syuilo 2025-03-10 21:42:17 +09:00
parent f797765b1d
commit a4ba096e2a
1 changed files with 5 additions and 3 deletions

View File

@ -45,12 +45,14 @@ export class Store<Data extends Record<string, any>> extends EventEmitter<StoreE
} }
public commit<K extends keyof Data>(key: K, value: Data[K]) { public commit<K extends keyof Data>(key: K, value: Data[K]) {
this.r[key].value = this.s[key] = value; const v = JSON.parse(JSON.stringify(value)); // deep copy 兼 vueのプロキシ解除
this.emit('updated', { key, value }); this.r[key].value = this.s[key] = v;
this.emit('updated', { key, value: v });
} }
public rewrite<K extends keyof Data>(key: K, value: Data[K]) { public rewrite<K extends keyof Data>(key: K, value: Data[K]) {
this.r[key].value = this.s[key] = value; const v = JSON.parse(JSON.stringify(value)); // deep copy 兼 vueのプロキシ解除
this.r[key].value = this.s[key] = v;
} }
/** /**