Sha256: d014da481bb8afbc8f4abb3f862553a43e5a7fe84c82c8d252a39b96d4cca0bd
Contents?: true
Size: 658 Bytes
Versions: 26
Compression:
Stored size: 658 Bytes
Contents
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]; }); }
Version data entries
26 entries across 26 versions & 1 rubygems