UNPKG

cli-legend

Version:

"A fun command-line rogurelike dungeon game"

20 lines (19 loc) 676 B
import { withPointer, handleChange } from './hook-engine.js'; export function useState(defaultValue) { return withPointer((pointer) => { const setFn = (newValue) => { // Noop if the value is still the same. if (pointer.get() !== newValue) { pointer.set(newValue); // Trigger re-render handleChange(); } }; if (pointer.initialized) { return [pointer.get(), setFn]; } const value = typeof defaultValue === 'function' ? defaultValue() : defaultValue; pointer.set(value); return [value, setFn]; }); }