UNPKG

sub-redux

Version:

[![npm version](https://img.shields.io/npm/v/sub-redux.svg)](https://www.npmjs.com/package/sub-redux) [![npm](https://img.shields.io/npm/dm/sub-redux.svg)](https://www.npmjs.com/package/sub-redux)

31 lines (30 loc) 1.3 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = __importStar(require("react")); var react_redux_1 = require("react-redux"); var actions_1 = require("./actions"); var subStore_1 = require("./subStore"); function useSubRedux(_a) { var initial = _a.initial, reducer = _a.reducer, middlewares = _a.middlewares; var store = react_redux_1.useStore(); var instance = React.useMemo(function () { return actions_1.getId(); }, []); // Dispatch init action during first render (not during useEffect). React.useMemo(function () { store.dispatch(actions_1.actions.init({ instance: instance, initial: initial, reducer: reducer, middlewares: middlewares })); }, []); // Dispatch destroy action on unmount React.useEffect(function () { return function () { store.dispatch(actions_1.actions.destroy({ instance: instance })); }; }, []); return subStore_1.getSubStore(instance, store); } exports.useSubRedux = useSubRedux;