InsidersByte/honeymoon-gift-list

View on GitHub
public/containers/BasketSummaryPage/index.jsx

Summary

Maintainability
A
1 hr
Test Coverage
/* @flow */

import { connect } from 'react-redux';
import type { Connector } from 'react-redux';
import { addToBasket, removeFromBasket, deleteFromBasket } from '../../redux/basket';
import { getBasketCount, getBasketTotal } from '../../redux';
import BasketSummary from '../../components/BasketSummary';
import type { StateType, BasketType, ItemType } from '../../types';

type PropsType = {
  basket: BasketType,
  basketCount: number,
  basketTotal: number,
  addToBasket: (item: ItemType) => void,
  removeFromBasket: (item: ItemType) => void,
  deleteFromBasket: (item: ItemType) => void,
};

const mapStateToProps = (state: StateType) => ({
  basket: state.basket,
  basketCount: getBasketCount(state),
  basketTotal: getBasketTotal(state),
});

const mapDispatchToProps = { addToBasket, removeFromBasket, deleteFromBasket };

const connector: Connector<PropsType, PropsType> = connect(mapStateToProps, mapDispatchToProps);

export default connector(BasketSummary);