diff --git a/client/ui/preference/PreferenceStore.ts b/client/ui/preference/PreferenceStore.ts index f4e14b5..b8353a0 100644 --- a/client/ui/preference/PreferenceStore.ts +++ b/client/ui/preference/PreferenceStore.ts @@ -1,7 +1,7 @@ import React from 'react' export default class PreferenceStore { - declare onUpdate: (value: T) => void + declare onUpdate: (value: T, oldvalue: T) => void declare state: T declare setState: React.Dispatch> constructor() { @@ -12,15 +12,16 @@ export default class PreferenceStore { createUpdater() { return (key: string, value: unknown) => { + const oldvalue = this.state const newValue = { ...this.state, [key]: value, } this.setState(newValue) - this.onUpdate?.(newValue) + this.onUpdate?.(newValue, oldvalue) } } - setOnUpdate(onUpdate: (value: T) => void) { + setOnUpdate(onUpdate: (value: T, oldvalue: T) => void) { this.onUpdate = onUpdate } }