jotai
Version:
👻 Primitive and flexible state management for React
23 lines (22 loc) • 692 B
JavaScript
'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;
};