UNPKG

react-redux

Version:

Official React bindings for Redux

26 lines (24 loc) 1.06 kB
import type { Action, Dispatch } from 'redux' import bindActionCreators from '../utils/bindActionCreators' import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps' import { createInvalidArgFactory } from './invalidArgFactory' import type { MapDispatchToPropsParam } from './selectorFactory' export function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>( mapDispatchToProps: | MapDispatchToPropsParam<TDispatchProps, TOwnProps> | undefined, ) { return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => // @ts-ignore bindActionCreators(mapDispatchToProps, dispatch), ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({ dispatch, })) : typeof mapDispatchToProps === 'function' ? // @ts-ignore wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps') }