jsketcher/modules/scene/utils/stateUpdater.js

23 lines
No EOL
416 B
JavaScript

export function createReactiveState(state = {}, update) {
return function (prop, value) {
if (state[prop] === value) {
return;
}
state[prop] = value;
update(state);
}
}
export function createExpensiveSetter(setter) {
let lastValue = NOT_SET;
return function set(value) {
if (value !== lastValue) {
lastValue = value;
setter(value);
}
}
}
const NOT_SET = {};