rtk-slice-manager
Version:
Wrap over slice from @reduxjs/toolkit for automatic generation of actions and isolation of effect logic after changing the state of the fields
21 lines (20 loc) • 791 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useManager = void 0;
const react_1 = require("react");
const react_redux_1 = require("react-redux");
function useManager({ actions, name }) {
const dispatch = (0, react_redux_1.useDispatch)();
const params = (0, react_redux_1.useSelector)((state) => state[name]);
const handlers = (0, react_1.useMemo)(() => {
return Object.keys(actions).reduce((acc, cur) => {
const key = cur;
const action = actions[key];
return Object.assign(Object.assign({}, acc), { [cur]: (args) => {
dispatch(action(args));
} });
}, {});
}, [actions, dispatch]);
return [params, handlers];
}
exports.useManager = useManager;