11import  {  connect  }  from  'react-redux' 
22import  {  FormattedMessage ,  injectIntl ,  IntlShape  }  from  'react-intl' 
33import  {  Itinerary  }  from  '@opentripplanner/types' 
4+ import  coreUtils  from  '@opentripplanner/core-utils' 
45import  React ,  {  Component  }  from  'react' 
56
6- import  *  as  apiActions  from  '../../actions/api' 
77import  *  as  formActions  from  '../../actions/form' 
8+ import  *  as  narrativeActions  from  '../../actions/narrative' 
89import  {  AppReduxState  }  from  '../../util/state-types' 
9- import  {  getActiveItinerary ,  getActiveSearch  }  from  '../../util/state' 
10+ import  { 
11+   getActiveItineraries , 
12+   getActiveSearch , 
13+   getVisibleItineraryIndex 
14+ }  from  '../../util/state' 
1015import  {  summarizeQuery  }  from  '../form/user-settings-i18n' 
1116import  {  User  }  from  '../user/types' 
1217import  DefaultMap  from  '../map/default-map' 
@@ -19,7 +24,8 @@ type Props = {
1924  intl : IntlShape 
2025  itinerary : Itinerary 
2126  location ?: {  search ?: string  } 
22-   parseUrlQueryString : ( params ?: any ,  source ?: string )  =>  any 
27+   parseUrlQueryString : ( params ?: any ,  source ?: string )  =>  void 
28+   setVisibleItinerary : ( params : {  index : number  } )  =>  void 
2329  user : User 
2430} 
2531
@@ -37,6 +43,23 @@ class PrintLayout extends Component<Props> {
3743    } 
3844  } 
3945
46+   componentDidUpdate ( )  { 
47+     const  {  activeSearch,  itinerary,  setVisibleItinerary }  =  this . props 
48+ 
49+     // Display the desired itinerary on map. 
50+     if  ( ! itinerary )  { 
51+       const  {  ui_activeItinerary : uiActiveItinerary  }  = 
52+         coreUtils . query . getUrlParams ( )  ||  { } 
53+       if  ( 
54+         activeSearch  && 
55+         uiActiveItinerary  !==  undefined  && 
56+         uiActiveItinerary  !==  '-1' 
57+       )  { 
58+         setVisibleItinerary ( {  index : + uiActiveItinerary  } ) 
59+       } 
60+     } 
61+   } 
62+ 
4063  render ( )  { 
4164    const  {  activeSearch,  intl,  itinerary,  user }  =  this . props 
4265    const  printVerb  =  intl . formatMessage ( {  id : 'common.forms.print'  } ) 
@@ -68,16 +91,17 @@ const mapStateToProps = (state: AppReduxState) => {
6891  const  activeSearch  =  getActiveSearch ( state ) 
6992  const  {  localUser,  loggedInUser }  =  state . user 
7093  const  user  =  loggedInUser  ||  localUser 
94+   const  itineraries  =  getActiveItineraries ( state ) 
7195  return  { 
7296    activeSearch, 
73-     itinerary : getActiveItinerary ( state )  as  Itinerary , 
97+     itinerary : itineraries [ getVisibleItineraryIndex ( state ) ]  as  Itinerary , 
7498    user
7599  } 
76100} 
77101
78102const  mapDispatchToProps  =  { 
79103  parseUrlQueryString : formActions . parseUrlQueryString , 
80-   routingQuery :  apiActions . routingQuery 
104+   setVisibleItinerary :  narrativeActions . setVisibleItinerary 
81105} 
82106
83107export  default  connect ( 
0 commit comments