import { ReactReduxContext } from '../components/Context'; import { useStore as useDefaultStore, createStoreHook } from './useStore'; /** * Hook factory, which creates a `useDispatch` hook bound to a given context. * * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. * @returns {Function} A `useDispatch` hook bound to the specified context. */ export function createDispatchHook(context) { if (context === void 0) { context = ReactReduxContext; } var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context); return function useDispatch() { var store = useStore(); return store.dispatch; }; } /** * A hook to access the redux `dispatch` function. * * @returns {any|function} redux store's `dispatch` function * * @example * * import React, { useCallback } from 'react' * import { useDispatch } from 'react-redux' * * export const CounterComponent = ({ value }) => { * const dispatch = useDispatch() * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), []) * return ( *
* {value} * *
* ) * } */ export var useDispatch = /*#__PURE__*/createDispatchHook();