import { withPointer, handleChange } from './hook-engine.mjs'; 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]; }); }