UNPKG

jotai

Version:

👻 Primitive and flexible state management for React

23 lines (22 loc) • 692 B
'use client'; import { useStore } from '../../react.js'; import {} from '../../vanilla.js'; const hydratedMap = new WeakMap(); export function useHydrateAtoms(values, options) { const store = useStore(options); const hydratedSet = getHydratedSet(store); for (const [atom, ...args] of values) { if (!hydratedSet.has(atom) || options?.dangerouslyForceHydrate) { hydratedSet.add(atom); store.set(atom, ...args); } } } const getHydratedSet = (store) => { let hydratedSet = hydratedMap.get(store); if (!hydratedSet) { hydratedSet = new WeakSet(); hydratedMap.set(store, hydratedSet); } return hydratedSet; };