All files connect.js

100% Statements 5/5
100% Branches 2/2
100% Functions 5/5
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28                  4x 4x 3x 8x   8x                          
import React, { useContext } from "react";
import State from "./State";
 
/**
 *
 * @param {Function} mapState takes the state and own props
 * @param {Function} mapDispatch takes dispatch and current props
 * @return {Node} A react component with additional props
 */
const connect = (mapState = () => {}, mapDispatch = () => {}) => {
  return ConnectedComponent => {
    return ({ ...props }) => {
      const { state, dispatch } = useContext(State);
 
      return (
        <ConnectedComponent
          {...props}
          {...mapState(state, props)}
          {...mapDispatch(dispatch, props)}
          dispatch={dispatch}
        />
      );
    };
  };
};
 
export default connect;