diff --git a/app/component/RouteNumberContainer.js b/app/component/RouteNumberContainer.js index eac349b498..c17b06c808 100644 --- a/app/component/RouteNumberContainer.js +++ b/app/component/RouteNumberContainer.js @@ -22,7 +22,7 @@ const RouteNumberContainer = ( { defaultMessage="Only on demand: {routeName}, which needs to be booked in advance." />
-
- - - -
+ {leg.route.agency.phone && ( +
+ + + +
+ )}
diff --git a/app/component/itinerary/Itinerary.js b/app/component/itinerary/Itinerary.js index f23d646275..1dfde34ed3 100644 --- a/app/component/itinerary/Itinerary.js +++ b/app/component/itinerary/Itinerary.js @@ -18,7 +18,7 @@ import { getLegMode, compressLegs, getLegBadgeProps, - isCallAgencyPickupType, + isCallAgencyLeg, getInterliningLegs, getTotalDistance, legTime, @@ -86,7 +86,7 @@ export function RouteLeg( }, { config }, ) { - const isCallAgency = isCallAgencyPickupType(leg); + const isCallAgency = isCallAgencyLeg(leg); let routeNumber; const mode = getRouteMode(leg.route, config); diff --git a/app/component/itinerary/ItineraryDetails.js b/app/component/itinerary/ItineraryDetails.js index bce0faca56..ef1c523342 100644 --- a/app/component/itinerary/ItineraryDetails.js +++ b/app/component/itinerary/ItineraryDetails.js @@ -19,7 +19,7 @@ import { getTotalWalkingDistance, getTotalWalkingDuration, getZones, - isCallAgencyPickupType, + isCallAgencyLeg, legContainsBikePark, legContainsRentalBike, } from '../../util/legUtils'; @@ -215,7 +215,7 @@ class ItineraryDetails extends React.Component { }); const info = config.callAgencyInfo?.[currentLanguage]; - if (info && itinerary.legs.some(leg => isCallAgencyPickupType(leg))) { + if (info && itinerary.legs.some(leg => isCallAgencyLeg(leg))) { disclaimers.push( ); } else if (leg.intermediatePlace) { legs.push(); diff --git a/app/component/map/ItineraryLine.js b/app/component/map/ItineraryLine.js index f4edf1c338..7aaf885779 100644 --- a/app/component/map/ItineraryLine.js +++ b/app/component/map/ItineraryLine.js @@ -8,7 +8,7 @@ import { getMiddleOf } from '../../util/geo-utils'; import { getInterliningLegs, getLegText, - isCallAgencyPickupType, + isCallAgencyLeg, } from '../../util/legUtils'; import { getRouteMode } from '../../util/modeUtils'; import { configShape, legShape } from '../../util/shapes'; @@ -86,7 +86,7 @@ class ItineraryLine extends React.Component { mode = 'CITYBIKE'; } - const modePlusClass = isCallAgencyPickupType(leg) + const modePlusClass = isCallAgencyLeg(leg) ? 'call' : mode.toLowerCase() + (this.props.passive ? ' passive' : ''); const geometry = polyUtil.decode(leg.legGeometry.points); @@ -117,7 +117,7 @@ class ItineraryLine extends React.Component { color={leg.route && leg.route.color ? `#${leg.route.color}` : null} key={`${this.props.hash}_${i}_${mode}`} geometry={geometry} - mode={isCallAgencyPickupType(leg) ? 'call' : mode.toLowerCase()} + mode={isCallAgencyLeg(leg) ? 'call' : mode.toLowerCase()} passive={this.props.passive} />, ); @@ -188,7 +188,7 @@ class ItineraryLine extends React.Component { end, nextLeg, index: i, - mode: isCallAgencyPickupType(leg) ? 'call' : mode.toLowerCase(), + mode: isCallAgencyLeg(leg) ? 'call' : mode.toLowerCase(), legName: name, zIndexOffset: 300, interliningWithRoute, @@ -205,7 +205,7 @@ class ItineraryLine extends React.Component { platformCode: leg.from.stop.platformCode, transfer: true, }} - mode={isCallAgencyPickupType(leg) ? 'call' : mode.toLowerCase()} + mode={isCallAgencyLeg(leg) ? 'call' : mode.toLowerCase()} renderText={leg.transitLeg && this.props.showTransferLabels} />, ); @@ -220,7 +220,7 @@ class ItineraryLine extends React.Component { platformCode: leg.to.stop.platformCode, transfer: true, }} - mode={isCallAgencyPickupType(leg) ? 'call' : mode.toLowerCase()} + mode={isCallAgencyLeg(leg) ? 'call' : mode.toLowerCase()} renderText={leg.transitLeg && this.props.showTransferLabels} />, ); diff --git a/app/util/legUtils.js b/app/util/legUtils.js index 50c3b1e064..ea554c6d93 100644 --- a/app/util/legUtils.js +++ b/app/util/legUtils.js @@ -45,10 +45,6 @@ function filterLegStops(leg, filter) { return false; } -export function isCallAgencyDeparture(departure) { - return departure.pickupType === 'CALL_AGENCY'; -} - function sameBicycleNetwork(leg1, leg2) { if (leg1.from.vehicleRentalStation && leg2.from.vehicleRentalStation) { return ( @@ -126,8 +122,9 @@ export function getLegMode(legOrMode) { * stop.gtfsId * pickupType */ -export function isCallAgencyPickupType(leg) { +export function isCallAgencyLeg(leg) { return ( + leg.route?.type === 715 || filterLegStops(leg, stoptime => stoptime.pickupType === 'CALL_AGENCY') .length > 0 );