diff --git a/develop/GMap.js b/develop/GMap.js index 021f36f..5ff3e57 100644 --- a/develop/GMap.js +++ b/develop/GMap.js @@ -8,7 +8,7 @@ import withPropsOnChange from 'recompose/withPropsOnChange'; import ptInBounds from './utils/ptInBounds'; import GoogleMapReact from '../src'; import SimpleMarker from './markers/SimpleMarker'; - +import { createSelector } from 'reselect'; import { susolvkaCoords, generateMarkers } from './data/fakeData'; export const gMap = ({ @@ -60,8 +60,10 @@ export const gMapHOC = compose( withStateSelector( 'markers', 'setMarkers', - ({ route: { markersCount = 20 } }) => markersCount, - (markersCount) => generateMarkers(markersCount) + () => createSelector( + ({ route: { markersCount = 20 } }) => markersCount, + (markersCount) => generateMarkers(markersCount) + ) ), withState('hoveredMarkerId', 'setHoveredMarkerId', -1), withState('mapParams', 'setMapParams', { center: susolvkaCoords, zoom: 10 }), diff --git a/develop/utils/withStateSelector.js b/develop/utils/withStateSelector.js index f490ab9..c2308af 100644 --- a/develop/utils/withStateSelector.js +++ b/develop/utils/withStateSelector.js @@ -1,12 +1,12 @@ import { Component } from 'react'; import createEagerFactory from './createEagerFactory'; -import { createSelector } from 'reselect'; +import createHelper from 'recompose/createHelper'; -const withStateSelector = (stateName, stateUpdaterName, ...selectorArgs) => +const withStateSelector = (stateName, stateUpdaterName, selectorFactory) => BaseComponent => { const factory = createEagerFactory(BaseComponent); return class extends Component { - selector = createSelector(...selectorArgs); + selector = selectorFactory(); state = { stateValue: this.selector(this.props), }; @@ -39,4 +39,4 @@ const withStateSelector = (stateName, stateUpdaterName, ...selectorArgs) => }; }; -export default withStateSelector; +export default createHelper(withStateSelector, 'withStateSelector');