fix: used selectors in mapstatetoprops

This commit is contained in:
Ahmad Abdolsaheb
2019-02-28 10:18:49 +03:00
committed by Stuart Taylor
parent 08f737a0b9
commit 897b9110fc
3 changed files with 28 additions and 14 deletions

View File

@ -2,6 +2,7 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { createSelector } from 'reselect';
import Media from 'react-media';
import FCCSearch from 'react-freecodecamp-search';
@ -13,14 +14,16 @@ import './header.css';
import {
toggleDisplaySideNav,
toggleDisplayMenu
toggleDisplayMenu,
displayMenuSelector
} from '../layouts/components/guide/redux';
const mapStateToProps = state => {
return {
displayMenu: state.guideNav.displayMenu
};
};
const mapStateToProps = createSelector(
displayMenuSelector,
displayMenu => ({
displayMenu
})
);
const mapDispatchToProps = dispatch =>
bindActionCreators({ toggleDisplaySideNav, toggleDisplayMenu }, dispatch);

View File

@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
import { StaticQuery, graphql } from 'gatsby';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { createSelector } from 'reselect';
import { Grid, Col, Row } from '@freecodecamp/react-bootstrap';
import SideNav from './components/guide/SideNav';
@ -13,7 +14,10 @@ import './guide.css';
import {
toggleExpandedState,
toggleDisplaySideNav
toggleDisplaySideNav,
displaySideNavSelector,
displayMenuSelector,
expandedStateSelector
} from './components/guide/redux';
const propTypes = {
@ -40,13 +44,16 @@ const propTypes = {
toggleExpandedState: PropTypes.func
};
const mapStateToProps = state => {
return {
expandedState: state.guideNav.expandedState,
displayMenu: state.guideNav.displayMenu,
displaySideNav: state.guideNav.displaySideNav
};
};
const mapStateToProps = createSelector(
displaySideNavSelector,
displayMenuSelector,
expandedStateSelector,
(displaySideNav, displayMenu, expandedState) => ({
displaySideNav,
displayMenu,
expandedState
})
);
const mapDispatchToProps = dispatch =>
bindActionCreators({ toggleExpandedState, toggleDisplaySideNav }, dispatch);

View File

@ -19,6 +19,10 @@ export const toggleExpandedState = createAction(types.toggleExpandedState);
export const toggleDisplaySideNav = createAction(types.toggleDisplaySideNav);
export const toggleDisplayMenu = createAction(types.toggleDisplayMenu);
export const displaySideNavSelector = state => state[ns].displaySideNav;
export const displayMenuSelector = state => state[ns].displayMenu;
export const expandedStateSelector = state => state[ns].expandedState;
export const reducer = handleActions(
{
[types.toggleExpandedState]: (state, { payload }) => ({