@@ -2,7 +2,7 @@ import React, { Component, PropTypes } from 'react'
2
2
import { connect } from 'react-redux'
3
3
import { Button } from 'react-bootstrap'
4
4
5
- import { setActiveItinerary , setActiveLeg , setActiveStep } from '../../actions/narrative'
5
+ import { setActiveItinerary , setActiveLeg , setActiveStep , setUseRealtimeResponse } from '../../actions/narrative'
6
6
import DefaultItinerary from './default/default-itinerary'
7
7
import { getActiveSearch } from '../../util/state'
8
8
import { formatDuration } from '../../util/time'
@@ -15,29 +15,35 @@ class NarrativeItineraries extends Component {
15
15
activeItinerary : PropTypes . number ,
16
16
setActiveItinerary : PropTypes . func ,
17
17
setActiveLeg : PropTypes . func ,
18
- setActiveStep : PropTypes . func
18
+ setActiveStep : PropTypes . func ,
19
+ setUseRealtimeResponse : PropTypes . func ,
20
+ useRealtime : PropTypes . bool
19
21
}
20
22
21
23
static defaultProps = {
22
24
itineraryClass : DefaultItinerary
23
25
}
24
26
25
- _handleDefaultItineraryClick = ( e ) => {
26
- // TODO figure out what this button is supposed to do
27
+ _toggleRealtimeItineraryClick = ( e ) => {
28
+ const { setUseRealtimeResponse, useRealtime} = this . props
29
+ setUseRealtimeResponse ( { useRealtime : ! useRealtime } )
27
30
}
28
31
29
32
render ( ) {
30
33
const {
31
34
activeItinerary,
32
35
itineraries,
33
36
itineraryClass,
34
- realtimeEffects
37
+ realtimeEffects,
38
+ useRealtime
35
39
} = this . props
36
40
if ( ! itineraries ) return null
37
41
38
42
return (
39
43
< div className = 'options itinerary' >
40
- < div className = 'header' > We found { itineraries . length } itineraries:</ div >
44
+ < div className = 'header' >
45
+ We found { itineraries . length } { ! useRealtime && ` non-realtime ` } itineraries:
46
+ </ div >
41
47
42
48
{ realtimeEffects . isAffectedByRealtimeData &&
43
49
< div className = 'realtime-alert' >
@@ -63,9 +69,9 @@ class NarrativeItineraries extends Component {
63
69
< Button
64
70
bsSize = 'xsmall'
65
71
bsStyle = 'danger'
66
- onClick = { this . _handleDefaultItineraryClick }
72
+ onClick = { this . _toggleRealtimeItineraryClick }
67
73
>
68
- View Default Itinerary
74
+ View { useRealtime ? ` Default` : `Realtime` } Itinerary
69
75
</ Button >
70
76
</ div >
71
77
</ div >
@@ -107,8 +113,10 @@ const mapStateToProps = (state, ownProps) => {
107
113
nonRealtimeItineraries &&
108
114
itineraries [ 0 ] . duration !== nonRealtimeItineraries [ 0 ] . duration
109
115
)
116
+ const useRealtime = state . otp . useRealtime
110
117
return {
111
- itineraries,
118
+ // swap out realtime itineraries with non-realtime depending on boolean
119
+ itineraries : useRealtime ? itineraries : nonRealtimeItineraries ,
112
120
nonRealtimeItineraries,
113
121
pending,
114
122
realtimeEffects : {
@@ -122,7 +130,8 @@ const mapStateToProps = (state, ownProps) => {
122
130
} ,
123
131
activeItinerary : activeSearch && activeSearch . activeItinerary ,
124
132
activeLeg : activeSearch && activeSearch . activeLeg ,
125
- activeStep : activeSearch && activeSearch . activeStep
133
+ activeStep : activeSearch && activeSearch . activeStep ,
134
+ useRealtime
126
135
}
127
136
}
128
137
@@ -136,6 +145,9 @@ const mapDispatchToProps = (dispatch, ownProps) => {
136
145
} ,
137
146
setActiveStep : ( index , step ) => {
138
147
dispatch ( setActiveStep ( { index, step} ) )
148
+ } ,
149
+ setUseRealtimeResponse : ( { useRealtime} ) => {
150
+ dispatch ( setUseRealtimeResponse ( { useRealtime} ) )
139
151
}
140
152
}
141
153
}
0 commit comments