ayanami
Version:
A better way to react with state
16 lines (15 loc) • 699 B
JavaScript
import * as React from 'react';
import get from 'lodash/get';
import { combineWithIkari } from '../core';
import { useSubscribeAyanamiState } from './use-subscribe-ayanami-state';
export function useAyanamiInstance(ayanami, config) {
var ikari = React.useMemo(function () { return combineWithIkari(ayanami); }, [ayanami]);
var state = useSubscribeAyanamiState(ayanami, config ? config.selector : undefined);
React.useEffect(function () { return function () {
var isDestroyWhenUnmount = get(config, 'destroyWhenUnmount', false);
if (isDestroyWhenUnmount) {
ayanami.destroy();
}
}; }, [ayanami, config]);
return [state, ikari.triggerActions];
}