UNPKG

@zohodesk/hooks

Version:

Unified Component Library - Hooks

23 lines (21 loc) 718 B
import { useCallback, useMemo } from 'react'; export default function bindActions(obj, dispatch) { /* assume dispatch and object won't change */ return useMemo(() => Object.keys(obj).reduce((res, key) => { res[key] = function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return dispatch(obj[key].apply(null, args)); }; return res; }, {}), []); /* usecallback need to flat */ // return Object.keys(obj).reduce((res, key) => { // res[key] = useCallback( // (...args) => dispatch(obj[key].apply(null, args)), // [] // ); // return res; // }, {}); }