function property<T>(key: string, defaultValue: T) {
const [_, setUpdatedAt] = useSyncedState("updatedAt", 0);
const [value, setter] = useSyncedState(key, defaultValue);
return {
value: value,
set: function (newValue) {
setUpdatedAt(Date.now());
setter(newValue);
},
modify: function (fn: (currentValue: T) => T) {
setUpdatedAt(Date.now());
setter(fn);
},
};
}