import bindActionCreators from '../utils/bindActionCreators'; import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'; import { createInvalidArgFactory } from './invalidArgFactory'; export function mapDispatchToPropsFactory(mapDispatchToProps) { return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(dispatch => // @ts-ignore bindActionCreators(mapDispatchToProps, dispatch)) : !mapDispatchToProps ? wrapMapToPropsConstant(dispatch => ({ dispatch })) : typeof mapDispatchToProps === 'function' ? // @ts-ignore wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps'); }