UNPKG

jotai

Version:

👻 Primitive and flexible state management for React

22 lines (21 loc) • 665 B
import { atom } from '../../vanilla.js'; export function atomWithRefresh(read, write) { const refreshAtom = atom(0); if (process.env.NODE_ENV !== 'production') { refreshAtom.debugPrivate = true; } return atom((get, options) => { get(refreshAtom); return read(get, options); }, (get, set, ...args) => { if (args.length === 0) { set(refreshAtom, (c) => c + 1); } else if (write) { return write(get, set, ...args); } else if (process.env.NODE_ENV !== 'production') { throw new Error('refresh must be called without arguments'); } }); }