ayanami
Version:
A better way to react with state
21 lines (20 loc) • 977 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useAyanamiInstance = void 0;
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var get_1 = tslib_1.__importDefault(require("lodash/get"));
var core_1 = require("../core");
var use_subscribe_ayanami_state_1 = require("./use-subscribe-ayanami-state");
function useAyanamiInstance(ayanami, config) {
var ikari = React.useMemo(function () { return core_1.combineWithIkari(ayanami); }, [ayanami]);
var state = use_subscribe_ayanami_state_1.useSubscribeAyanamiState(ayanami, config ? config.selector : undefined);
React.useEffect(function () { return function () {
var isDestroyWhenUnmount = get_1.default(config, 'destroyWhenUnmount', false);
if (isDestroyWhenUnmount) {
ayanami.destroy();
}
}; }, [ayanami, config]);
return [state, ikari.triggerActions];
}
exports.useAyanamiInstance = useAyanamiInstance;