@zedux/atoms
Version:
A Molecular State Engine for React
29 lines (23 loc) • 786 B
text/typescript
import {
AnyAtomInstance,
AnyAtomTemplate,
AtomParamsType,
AtomStateType,
ParamlessTemplate,
} from '../types/index'
import { injectAtomInstance } from './injectAtomInstance'
export const injectAtomValue: {
<A extends AnyAtomTemplate>(
template: A,
params: AtomParamsType<A>
): AtomStateType<A>
<A extends AnyAtomTemplate<{ Params: [] }>>(template: A): AtomStateType<A>
<A extends AnyAtomTemplate>(template: ParamlessTemplate<A>): AtomStateType<A>
<I extends AnyAtomInstance>(instance: I): AtomStateType<I>
} = <A extends AnyAtomTemplate>(atom: A, params?: AtomParamsType<A>) => {
const instance = injectAtomInstance(atom, params as AtomParamsType<A>, {
operation: 'injectAtomValue',
subscribe: true,
})
return instance.store.getState()
}