feat: get old value of preference when is was updated
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
export default class PreferenceStore<T extends object> {
|
export default class PreferenceStore<T extends object> {
|
||||||
declare onUpdate: (value: T) => void
|
declare onUpdate: (value: T, oldvalue: T) => void
|
||||||
declare state: T
|
declare state: T
|
||||||
declare setState: React.Dispatch<React.SetStateAction<T>>
|
declare setState: React.Dispatch<React.SetStateAction<T>>
|
||||||
constructor() {
|
constructor() {
|
||||||
@@ -12,15 +12,16 @@ export default class PreferenceStore<T extends object> {
|
|||||||
|
|
||||||
createUpdater() {
|
createUpdater() {
|
||||||
return (key: string, value: unknown) => {
|
return (key: string, value: unknown) => {
|
||||||
|
const oldvalue = this.state
|
||||||
const newValue = {
|
const newValue = {
|
||||||
...this.state,
|
...this.state,
|
||||||
[key]: value,
|
[key]: value,
|
||||||
}
|
}
|
||||||
this.setState(newValue)
|
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
|
this.onUpdate = onUpdate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user