UNPKG

@zedux/react

Version:

A Molecular State Engine for React

20 lines (19 loc) 712 B
import { createEcosystem, getEcosystem } from '@zedux/atoms'; import { useContext } from 'react'; import { ecosystemContext } from '../utils.js'; /** * Get the current ecosystem controlling atom usages in this component. * * If an ecosystem has been provided via an `<EcosystemProvider>` above the * current component, `useEcosystem()` returns a reference to the provided * ecosystem. * * If no ecosystem has been provided, `useEcosystem()` returns the global * ecosystem (creating it if it hasn't been created yet). * * Returns an Ecosystem class instance. */ export const useEcosystem = () => { const id = useContext(ecosystemContext); return getEcosystem(id) || createEcosystem({ id }); };