Skip to content
This repository was archived by the owner on Oct 26, 2018. It is now read-only.

Support ImmutableJS: use getLocationState instead of getRouterState as mentioned in #140 #218

Merged
merged 1 commit into from
Jan 24, 2016

Conversation

stepankuzmin
Copy link
Contributor

This works for me with custom reducer:

import { UPDATE_LOCATION } from 'redux-simple-router'

const initialState = new Immutable.Map({
  location: undefined
})

export default function routeReducer(state = initialState, { type, payload: location }) {
  if (type !== UPDATE_LOCATION) {
    return state
  }

  return state.merge({ location })
}

and this selectLocationState

  const selectLocationState = function (state) {
    const location = state.get('routing').get('location')
    return location ? location.toJS() : location
  }

@timdorr
Copy link
Member

timdorr commented Jan 20, 2016

This is really less about supporting Immutable explicitly, and more about being less prescriptive about the return shape of our selectRouterState/selectLocationState. That seems like a positive API change to me.

@timdorr
Copy link
Member

timdorr commented Jan 20, 2016

I'm going to leave this open until we want to do a release, since it affects the docs on master. I don't want to confuse people using the published version when the behavior differs from the docs.

In the meantime, you should be able to do this with your selectRouterState:

const selectLocationState = function (state) {
  const location = state.get('routing').get('location')
  return { location: location ? location.toJS() : location }
}

@stepankuzmin
Copy link
Contributor Author

Yep, thanks for reply @timdorr! I've also updated README.md in this PR to track changes

timdorr added a commit that referenced this pull request Jan 24, 2016
Support ImmutableJS: use getLocationState instead of getRouterState as mentioned in #140
@timdorr timdorr merged commit 0574e4d into reactjs:master Jan 24, 2016
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants