@@ -2,24 +2,11 @@ const deepEqual = require('deep-equal')
2
2
3
3
// Constants
4
4
5
- const INIT_PATH = '@@router/INIT_PATH'
6
- const UPDATE_PATH = '@@router/UPDATE_PATH'
7
- const SELECT_STATE = state => state . routing
5
+ const UPDATE_PATH = "@@router/UPDATE_PATH" ;
6
+ const SELECT_STATE = state => state . routing ;
8
7
9
8
// Action creators
10
9
11
- function initPath ( path , state ) {
12
- return {
13
- type : INIT_PATH ,
14
- payload : {
15
- path : path ,
16
- state : state ,
17
- replace : false ,
18
- avoidRouterUpdate : true
19
- }
20
- }
21
- }
22
-
23
10
function pushPath ( path , state , { avoidRouterUpdate = false } = { } ) {
24
11
return {
25
12
type : UPDATE_PATH ,
@@ -54,7 +41,7 @@ let initialState = {
54
41
}
55
42
56
43
function update ( state = initialState , { type, payload } ) {
57
- if ( type === INIT_PATH || type === UPDATE_PATH ) {
44
+ if ( type === UPDATE_PATH ) {
58
45
return Object . assign ( { } , state , {
59
46
path : payload . path ,
60
47
changeId : state . changeId + ( payload . avoidRouterUpdate ? 0 : 1 ) ,
@@ -128,7 +115,8 @@ function syncReduxAndRouter(history, store, selectRouterState = SELECT_STATE) {
128
115
// trigger an unnecessary `pushState` on load
129
116
lastRoute = initialState
130
117
131
- store . dispatch ( initPath ( route . path , route . state ) )
118
+ const method = location . action === 'REPLACE' ? replacePath : pushPath ;
119
+ store . dispatch ( method ( route . path , route . state , { avoidRouterUpdate : true } ) ) ;
132
120
} else if ( ! locationsAreEqual ( getRouterState ( ) , route ) ) {
133
121
// The above check avoids dispatching an action if the store is
134
122
// already up-to-date
0 commit comments