@mongez/react-atom
Version:
A simple state management tool for React Js.
24 lines (23 loc) • 991 B
JavaScript
;var jsxRuntime=require('react/jsx-runtime'),atom=require('@mongez/atom'),react=require('react');const AtomContext = react.createContext({});
/**
* Get clone of the given atom key
*/
function useAtom(key) {
const context = react.useContext(AtomContext);
return context[key];
}
function AtomProvider({ register = atom.atomsList(), defaultValue, children, }) {
const [currentAtoms] = react.useState(() => {
const atoms = {};
for (const atom of register) {
const newAtom = atom.clone();
atoms[atom.key] = newAtom;
if (defaultValue?.[atom.key]) {
newAtom.silentUpdate(defaultValue[atom.key]);
}
}
return atoms;
});
console.log(currentAtoms);
return (jsxRuntime.jsx(AtomContext.Provider, { value: currentAtoms, children: children }));
}exports.AtomContext=AtomContext;exports.AtomProvider=AtomProvider;exports.useAtom=useAtom;//# sourceMappingURL=context.js.map