From ba62a79ef31b5fdcf61e0daaea03140951874d45 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Tue, 17 Mar 2020 14:47:27 +0200 Subject: [PATCH 01/17] feat: add U prefix to U bus lines --- app/component/RouteNumber.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index 030ae5f5cf..d75bef0214 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -8,23 +8,31 @@ import ComponentUsageExample from './ComponentUsageExample'; import { realtimeDeparture as exampleRealtimeDeparture } from './ExampleData'; import { isMobile } from '../util/browser'; -const LONG_ROUTE_NUMBER_LENGTH = 6; +const LONG_ROUTE_NUMBER_LENGTH = 5; + +function AddUPrefix(route) { + if (route[0] === '7') { + return 'U'.concat(route); + } + return route; +} function RouteNumber(props, context) { let mode = props.mode.toLowerCase(); + const routeName = mode === 'bus' ? AddUPrefix(props.text) : props.text; const { alertSeverityLevel, color } = props; if (mode === 'bicycle' || mode === 'car') { mode += '-withoutBox'; } - const longText = props.text && props.text.length >= LONG_ROUTE_NUMBER_LENGTH; + const longText = routeName && routeName.length >= LONG_ROUTE_NUMBER_LENGTH; // Checks if route only has letters without identifying numbers and // length doesn't fit in the tab view const hasNoShortName = - props.text && - new RegExp(/^([^0-9]*)$/).test(props.text) && - props.text.length > 3; + routeName && + new RegExp(/^([^0-9]*)$/).test(routeName) && + routeName.length > 3; const getIcon = (icon, isCallAgency, hasDisruption, badgeFill, badgeText) => { if (isCallAgency) { @@ -106,7 +114,7 @@ function RouteNumber(props, context) { )} - {props.text && + {routeName && (props.vertical === false ? ( - {props.text} + {routeName} ) : (
@@ -130,7 +138,7 @@ function RouteNumber(props, context) { long: longText, })} > - {props.text} + {routeName}
))} From 69490cff767c51c9d6a11655033b73f685099851 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Tue, 17 Mar 2020 14:47:27 +0200 Subject: [PATCH 02/17] feat: add U prefix to U bus lines --- app/component/RouteNumber.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index 030ae5f5cf..d75bef0214 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -8,23 +8,31 @@ import ComponentUsageExample from './ComponentUsageExample'; import { realtimeDeparture as exampleRealtimeDeparture } from './ExampleData'; import { isMobile } from '../util/browser'; -const LONG_ROUTE_NUMBER_LENGTH = 6; +const LONG_ROUTE_NUMBER_LENGTH = 5; + +function AddUPrefix(route) { + if (route[0] === '7') { + return 'U'.concat(route); + } + return route; +} function RouteNumber(props, context) { let mode = props.mode.toLowerCase(); + const routeName = mode === 'bus' ? AddUPrefix(props.text) : props.text; const { alertSeverityLevel, color } = props; if (mode === 'bicycle' || mode === 'car') { mode += '-withoutBox'; } - const longText = props.text && props.text.length >= LONG_ROUTE_NUMBER_LENGTH; + const longText = routeName && routeName.length >= LONG_ROUTE_NUMBER_LENGTH; // Checks if route only has letters without identifying numbers and // length doesn't fit in the tab view const hasNoShortName = - props.text && - new RegExp(/^([^0-9]*)$/).test(props.text) && - props.text.length > 3; + routeName && + new RegExp(/^([^0-9]*)$/).test(routeName) && + routeName.length > 3; const getIcon = (icon, isCallAgency, hasDisruption, badgeFill, badgeText) => { if (isCallAgency) { @@ -106,7 +114,7 @@ function RouteNumber(props, context) { )} - {props.text && + {routeName && (props.vertical === false ? ( - {props.text} + {routeName} ) : (
@@ -130,7 +138,7 @@ function RouteNumber(props, context) { long: longText, })} > - {props.text} + {routeName}
))} From 787855d6e2c48acbbd90f7123ed838a92ed8316d Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Wed, 25 Mar 2020 10:59:54 +0200 Subject: [PATCH 03/17] feat: u-prefix to U-line busses --- app/component/CallAgencyLeg.js | 3 +++ app/component/FavouriteLocation.js | 24 ++++++++++++++++-------- app/component/NextDeparturesList.js | 2 ++ app/component/PrintableItinerary.js | 3 ++- app/component/RouteHeader.js | 12 ++++++++++-- app/component/RouteNumber.js | 17 ++++++++--------- app/component/RouteNumberContainer.js | 8 +++++++- app/component/RoutePage.js | 1 + app/component/SummaryRow.js | 9 ++++++++- app/component/TransitLeg.js | 1 + app/component/ViaLeg.js | 7 ++++++- app/configurations/config.default.js | 10 ++++++++++ app/configurations/config.hsl.js | 10 ++++++++++ 13 files changed, 84 insertions(+), 23 deletions(-) diff --git a/app/component/CallAgencyLeg.js b/app/component/CallAgencyLeg.js index 3ff238b7b6..ec27fc36c1 100644 --- a/app/component/CallAgencyLeg.js +++ b/app/component/CallAgencyLeg.js @@ -52,6 +52,9 @@ class CallAgencyLeg extends React.Component { mode="call" className="leg-call" realtime={false} + prefix={this.context.config.mapRouting( + this.props.leg.route.gtfsId, + )} vertical fadeLong /> diff --git a/app/component/FavouriteLocation.js b/app/component/FavouriteLocation.js index b736518e24..b4439b0b2d 100644 --- a/app/component/FavouriteLocation.js +++ b/app/component/FavouriteLocation.js @@ -11,14 +11,17 @@ import { favouriteLocation as favouriteLocationExample } from './ExampleData'; import { isStop, isTerminal } from '../util/suggestionUtils'; import { addAnalyticsEvent } from '../util/analyticsUtils'; -const FavouriteLocation = ({ - favourite, - className, - currentTime, - departureTime, - firstTransitLeg, - clickFavourite, -}) => { +const FavouriteLocation = ( + { + favourite, + className, + currentTime, + departureTime, + firstTransitLeg, + clickFavourite, + }, + context, +) => { const { name, favouriteId, lat, lon, selectedIconId } = favourite; let departureTimeComponent; if (departureTime && currentTime < departureTime) { @@ -49,6 +52,7 @@ const FavouriteLocation = ({ mode={firstTransitLeg.mode} realtime={firstTransitLeg.realTime} text={firstTransitLeg.route.shortName} + prefix={context.config.mapRouting(firstTransitLeg.route.gtfsId)} />   {departureTimeComponent} @@ -116,6 +120,10 @@ FavouriteLocation.propTypes = { firstTransitLeg: PropTypes.object, }; +FavouriteLocation.contextTypes = { + config: PropTypes.object.isRequired, +}; + FavouriteLocation.displayName = 'FavouriteLocation'; export default FavouriteLocation; diff --git a/app/component/NextDeparturesList.js b/app/component/NextDeparturesList.js index 024b1a9cbe..294621d050 100644 --- a/app/component/NextDeparturesList.js +++ b/app/component/NextDeparturesList.js @@ -104,6 +104,7 @@ function NextDeparturesList(props, context) { alertSeverityLevel={departure.alertSeverityLevel} mode={stoptime.pattern.route.mode} text={stoptime.pattern.route.shortName} + prefix={context.config.mapRouting(stoptime.pattern.route.gtfsId)} /> @@ -130,6 +131,7 @@ NextDeparturesList.propTypes = { NextDeparturesList.contextTypes = { router: routerShape.isRequired, + config: PropTypes.object.isRequired, }; export default NextDeparturesList; diff --git a/app/component/PrintableItinerary.js b/app/component/PrintableItinerary.js index 497d515715..bd7b58fbe1 100644 --- a/app/component/PrintableItinerary.js +++ b/app/component/PrintableItinerary.js @@ -214,7 +214,7 @@ TransferMap.propTypes = { const isWalking = legOrMode => ['WALK', 'BICYCLE_WALK'].find(mode => mode === getLegMode(legOrMode)); -export function PrintableLeg(props) { +export function PrintableLeg(props, context) { const { index, legObj, originalLegs } = props; const legMode = getLegMode(legObj) || ''; @@ -269,6 +269,7 @@ export function PrintableLeg(props) { mode={legObj.mode.toLowerCase()} vertical text={legObj.route !== null ? legObj.route.shortName : null} + prefix={context.config.mapRouting(legObj.route.gtfsId)} /> diff --git a/app/component/RouteHeader.js b/app/component/RouteHeader.js index d76990549c..68e23d495c 100644 --- a/app/component/RouteHeader.js +++ b/app/component/RouteHeader.js @@ -5,7 +5,7 @@ import cx from 'classnames'; import { PREFIX_ROUTES } from '../util/path'; import RouteNumber from './RouteNumber'; -export default function RouteHeader(props) { +export default function RouteHeader(props, context) { const mode = props.route.mode.toLowerCase(); const trip = props.trip ? ( @@ -35,7 +35,11 @@ export default function RouteHeader(props) { return (

- + {trip}

@@ -52,3 +56,7 @@ RouteHeader.propTypes = { pattern: PropTypes.shape({ code: PropTypes.string.isRequired }), className: PropTypes.string, }; + +RouteHeader.propContext = { + config: PropTypes.object.isRequired, +}; diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index d75bef0214..6921077224 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -8,18 +8,14 @@ import ComponentUsageExample from './ComponentUsageExample'; import { realtimeDeparture as exampleRealtimeDeparture } from './ExampleData'; import { isMobile } from '../util/browser'; -const LONG_ROUTE_NUMBER_LENGTH = 5; - -function AddUPrefix(route) { - if (route[0] === '7') { - return 'U'.concat(route); - } - return route; -} +const LONG_ROUTE_NUMBER_LENGTH = 6; function RouteNumber(props, context) { let mode = props.mode.toLowerCase(); - const routeName = mode === 'bus' ? AddUPrefix(props.text) : props.text; + const routeName = + mode === 'bus' && context.config.mapRouteNumbers && props.prefix + ? props.prefix.concat(props.text) + : props.text; const { alertSeverityLevel, color } = props; if (mode === 'bicycle' || mode === 'car') { @@ -218,6 +214,7 @@ RouteNumber.propTypes = { badgeText: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), icon: PropTypes.string, isRouteView: PropTypes.bool, + prefix: PropTypes.string, }; RouteNumber.defaultProps = { @@ -233,10 +230,12 @@ RouteNumber.defaultProps = { isCallAgency: false, isRouteView: false, icon: undefined, + prefix: undefined, }; RouteNumber.contextTypes = { intl: intlShape.isRequired, + config: PropTypes.object.isRequired, }; RouteNumber.displayName = 'RouteNumber'; diff --git a/app/component/RouteNumberContainer.js b/app/component/RouteNumberContainer.js index 1be7a996b3..73ddde5516 100644 --- a/app/component/RouteNumberContainer.js +++ b/app/component/RouteNumberContainer.js @@ -16,7 +16,7 @@ const getText = (route, config) => { }; const RouteNumberContainer = ( - { alertSeverityLevel, className, route, isCallAgency, ...props }, + { alertSeverityLevel, className, route, isCallAgency, trip, ...props }, { config }, ) => route && ( @@ -27,6 +27,11 @@ const RouteNumberContainer = ( color={route.color ? `#${route.color}` : null} mode={route.mode} text={getText(route, config)} + prefix={ + route.gtfsId + ? config.mapRouting(route.gtfsId) + : config.mapRouting(trip.pattern.code) + } {...props} /> ); @@ -37,6 +42,7 @@ RouteNumberContainer.propTypes = { vertical: PropTypes.bool, className: PropTypes.string, fadeLong: PropTypes.bool, + trip: PropTypes.object, }; RouteNumberContainer.defaultProps = { diff --git a/app/component/RoutePage.js b/app/component/RoutePage.js index b3afb78029..3aaa5a4857 100644 --- a/app/component/RoutePage.js +++ b/app/component/RoutePage.js @@ -341,6 +341,7 @@ class RoutePage extends React.Component { color={route.color ? `#${route.color}` : null} mode={route.mode} text={route.shortName} + prefix={config.mapRouting(route.gtfsId)} isRouteView /> )} diff --git a/app/component/SummaryRow.js b/app/component/SummaryRow.js index 6340809298..5ddf9f4386 100644 --- a/app/component/SummaryRow.js +++ b/app/component/SummaryRow.js @@ -54,7 +54,7 @@ Leg.propTypes = { large: PropTypes.bool.isRequired, }; -export const RouteLeg = ({ leg, large, intl }) => { +export const RouteLeg = ({ leg, large, intl }, context) => { const isCallAgency = isCallAgencyPickupType(leg); let routeNumber; if (isCallAgency) { @@ -69,6 +69,7 @@ export const RouteLeg = ({ leg, large, intl }) => { className={cx('line', 'call')} vertical withBar + prefix={context.config.mapRouting(leg.trip.pattern.code)} /> ); } else { @@ -76,6 +77,7 @@ export const RouteLeg = ({ leg, large, intl }) => { { const networkIcon = leg.from.bikeRentalStation && @@ -107,6 +113,7 @@ export const ModeLeg = ({ leg, mode, large }, { config }) => { vertical withBar icon={networkIcon} + prefix={config.mapRouting(leg.trip.pattern.code)} {...getLegBadgeProps(leg, config)} /> ); diff --git a/app/component/TransitLeg.js b/app/component/TransitLeg.js index c9638cc698..5ea538fff9 100644 --- a/app/component/TransitLeg.js +++ b/app/component/TransitLeg.js @@ -270,6 +270,7 @@ class TransitLeg extends React.Component { mode={mode.toLowerCase()} color={leg.route ? `#${leg.route.color}` : 'currentColor'} text={leg.route && leg.route.shortName} + prefix={this.context.config.mapRouting(leg.route.gtfsId)} realtime={leg.realTime} vertical fadeLong diff --git a/app/component/ViaLeg.js b/app/component/ViaLeg.js index 5fa49ae114..98f8471620 100644 --- a/app/component/ViaLeg.js +++ b/app/component/ViaLeg.js @@ -91,7 +91,11 @@ function ViaLeg(props, context) {
{moment(props.leg.startTime).format('HH:mm')}
- + Date: Wed, 25 Mar 2020 11:16:30 +0200 Subject: [PATCH 04/17] fix: add check before calling variable --- app/component/RouteNumberContainer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/component/RouteNumberContainer.js b/app/component/RouteNumberContainer.js index 73ddde5516..8924d93a9a 100644 --- a/app/component/RouteNumberContainer.js +++ b/app/component/RouteNumberContainer.js @@ -28,9 +28,12 @@ const RouteNumberContainer = ( mode={route.mode} text={getText(route, config)} prefix={ + // eslint-disable-next-line no-nested-ternary route.gtfsId ? config.mapRouting(route.gtfsId) - : config.mapRouting(trip.pattern.code) + : trip.pattern.code + ? config.mapRouting(trip.pattern.code) + : '' } {...props} /> From 0db82f9298e82d5f65ebbbe12a81eb7a05aaf291 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Wed, 25 Mar 2020 11:48:55 +0200 Subject: [PATCH 05/17] fix: check config before calling function --- app/component/RouteNumberContainer.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/component/RouteNumberContainer.js b/app/component/RouteNumberContainer.js index 8924d93a9a..e1a9579329 100644 --- a/app/component/RouteNumberContainer.js +++ b/app/component/RouteNumberContainer.js @@ -1,3 +1,4 @@ +/* eslint-disable no-nested-ternary */ import PropTypes from 'prop-types'; import React from 'react'; import get from 'lodash/get'; @@ -28,12 +29,13 @@ const RouteNumberContainer = ( mode={route.mode} text={getText(route, config)} prefix={ - // eslint-disable-next-line no-nested-ternary - route.gtfsId - ? config.mapRouting(route.gtfsId) - : trip.pattern.code - ? config.mapRouting(trip.pattern.code) - : '' + config.mapRouteNumbers + ? route.gtfsId + ? config.mapRouting(route.gtfsId) + : trip.pattern.code + ? config.mapRouting(trip.pattern.code) + : '' + : '' } {...props} /> From e26a3fc9224daca95199ee8af21159d8594e7117 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Wed, 25 Mar 2020 12:00:41 +0200 Subject: [PATCH 06/17] fix: added check before calling mapRouting function --- app/component/CallAgencyLeg.js | 8 +++++--- app/component/FavouriteLocation.js | 6 +++++- app/component/NextDeparturesList.js | 6 +++++- app/component/PrintableItinerary.js | 6 +++++- app/component/RouteHeader.js | 6 +++++- app/component/RoutePage.js | 6 +++++- app/component/SummaryRow.js | 10 ++++++++-- app/component/ViaLeg.js | 6 +++++- 8 files changed, 43 insertions(+), 11 deletions(-) diff --git a/app/component/CallAgencyLeg.js b/app/component/CallAgencyLeg.js index ec27fc36c1..5eaa49401b 100644 --- a/app/component/CallAgencyLeg.js +++ b/app/component/CallAgencyLeg.js @@ -52,9 +52,11 @@ class CallAgencyLeg extends React.Component { mode="call" className="leg-call" realtime={false} - prefix={this.context.config.mapRouting( - this.props.leg.route.gtfsId, - )} + prefix={ + this.context.config.mapRouteNumbers + ? this.context.config.mapRouting(this.props.leg.route.gtfsId) + : '' + } vertical fadeLong /> diff --git a/app/component/FavouriteLocation.js b/app/component/FavouriteLocation.js index b4439b0b2d..91333a098a 100644 --- a/app/component/FavouriteLocation.js +++ b/app/component/FavouriteLocation.js @@ -52,7 +52,11 @@ const FavouriteLocation = ( mode={firstTransitLeg.mode} realtime={firstTransitLeg.realTime} text={firstTransitLeg.route.shortName} - prefix={context.config.mapRouting(firstTransitLeg.route.gtfsId)} + prefix={ + context.config.mapRouteNumbers + ? context.config.mapRouting(firstTransitLeg.route.gtfsId) + : '' + } />   {departureTimeComponent} diff --git a/app/component/NextDeparturesList.js b/app/component/NextDeparturesList.js index 294621d050..2079aa4adc 100644 --- a/app/component/NextDeparturesList.js +++ b/app/component/NextDeparturesList.js @@ -104,7 +104,11 @@ function NextDeparturesList(props, context) { alertSeverityLevel={departure.alertSeverityLevel} mode={stoptime.pattern.route.mode} text={stoptime.pattern.route.shortName} - prefix={context.config.mapRouting(stoptime.pattern.route.gtfsId)} + prefix={ + context.config.mapRouteNumbers + ? context.config.mapRouting(stoptime.pattern.route.gtfsId) + : '' + } /> diff --git a/app/component/PrintableItinerary.js b/app/component/PrintableItinerary.js index bd7b58fbe1..721b3cc884 100644 --- a/app/component/PrintableItinerary.js +++ b/app/component/PrintableItinerary.js @@ -269,7 +269,11 @@ export function PrintableLeg(props, context) { mode={legObj.mode.toLowerCase()} vertical text={legObj.route !== null ? legObj.route.shortName : null} - prefix={context.config.mapRouting(legObj.route.gtfsId)} + prefix={ + context.config.mapRouteNumbers + ? context.config.mapRouting(legObj.route.gtfsId) + : '' + } /> diff --git a/app/component/RouteHeader.js b/app/component/RouteHeader.js index 68e23d495c..5eb986e581 100644 --- a/app/component/RouteHeader.js +++ b/app/component/RouteHeader.js @@ -38,7 +38,11 @@ export default function RouteHeader(props, context) { {trip} diff --git a/app/component/RoutePage.js b/app/component/RoutePage.js index 3aaa5a4857..e188a22c36 100644 --- a/app/component/RoutePage.js +++ b/app/component/RoutePage.js @@ -341,7 +341,11 @@ class RoutePage extends React.Component { color={route.color ? `#${route.color}` : null} mode={route.mode} text={route.shortName} - prefix={config.mapRouting(route.gtfsId)} + prefix={ + config.config.mapRouteNumbers + ? config.config.mapRouting(route.gtfsId) + : '' + } isRouteView /> )} diff --git a/app/component/SummaryRow.js b/app/component/SummaryRow.js index 5ddf9f4386..daf8e1dd4d 100644 --- a/app/component/SummaryRow.js +++ b/app/component/SummaryRow.js @@ -69,7 +69,11 @@ export const RouteLeg = ({ leg, large, intl }, context) => { className={cx('line', 'call')} vertical withBar - prefix={context.config.mapRouting(leg.trip.pattern.code)} + prefix={ + context.config.mapRouteNumbers + ? context.config.mapRouting(leg.trip.pattern.code) + : '' + } /> ); } else { @@ -113,7 +117,9 @@ export const ModeLeg = ({ leg, mode, large }, { config }) => { vertical withBar icon={networkIcon} - prefix={config.mapRouting(leg.trip.pattern.code)} + prefix={ + config.mapRouteNumbers ? config.mapRouting(leg.trip.pattern.code) : '' + } {...getLegBadgeProps(leg, config)} /> ); diff --git a/app/component/ViaLeg.js b/app/component/ViaLeg.js index 98f8471620..7f324cf3c6 100644 --- a/app/component/ViaLeg.js +++ b/app/component/ViaLeg.js @@ -94,7 +94,11 @@ function ViaLeg(props, context) { Date: Wed, 25 Mar 2020 13:03:25 +0200 Subject: [PATCH 07/17] fix: check if mapRouting function exists before calling it --- app/component/CallAgencyLeg.js | 2 +- app/component/FavouriteLocation.js | 2 +- app/component/NextDeparturesList.js | 2 +- app/component/PrintableItinerary.js | 2 +- app/component/RouteHeader.js | 2 +- app/component/RouteNumberContainer.js | 2 +- app/component/RoutePage.js | 2 +- app/component/SummaryRow.js | 6 ++++-- app/component/TransitLeg.js | 6 +++++- app/component/ViaLeg.js | 2 +- 10 files changed, 17 insertions(+), 11 deletions(-) diff --git a/app/component/CallAgencyLeg.js b/app/component/CallAgencyLeg.js index 5eaa49401b..f27a6273c5 100644 --- a/app/component/CallAgencyLeg.js +++ b/app/component/CallAgencyLeg.js @@ -53,7 +53,7 @@ class CallAgencyLeg extends React.Component { className="leg-call" realtime={false} prefix={ - this.context.config.mapRouteNumbers + typeof this.context.config.mapRouting === 'function' ? this.context.config.mapRouting(this.props.leg.route.gtfsId) : '' } diff --git a/app/component/FavouriteLocation.js b/app/component/FavouriteLocation.js index 91333a098a..e58ffb5836 100644 --- a/app/component/FavouriteLocation.js +++ b/app/component/FavouriteLocation.js @@ -53,7 +53,7 @@ const FavouriteLocation = ( realtime={firstTransitLeg.realTime} text={firstTransitLeg.route.shortName} prefix={ - context.config.mapRouteNumbers + typeof context.config.mapRouting === 'function' ? context.config.mapRouting(firstTransitLeg.route.gtfsId) : '' } diff --git a/app/component/NextDeparturesList.js b/app/component/NextDeparturesList.js index 2079aa4adc..deb1bf1147 100644 --- a/app/component/NextDeparturesList.js +++ b/app/component/NextDeparturesList.js @@ -105,7 +105,7 @@ function NextDeparturesList(props, context) { mode={stoptime.pattern.route.mode} text={stoptime.pattern.route.shortName} prefix={ - context.config.mapRouteNumbers + typeof context.config.mapRouting === 'function' ? context.config.mapRouting(stoptime.pattern.route.gtfsId) : '' } diff --git a/app/component/PrintableItinerary.js b/app/component/PrintableItinerary.js index 721b3cc884..8f165bf67c 100644 --- a/app/component/PrintableItinerary.js +++ b/app/component/PrintableItinerary.js @@ -270,7 +270,7 @@ export function PrintableLeg(props, context) { vertical text={legObj.route !== null ? legObj.route.shortName : null} prefix={ - context.config.mapRouteNumbers + typeof context.config.mapRouting === 'function' ? context.config.mapRouting(legObj.route.gtfsId) : '' } diff --git a/app/component/RouteHeader.js b/app/component/RouteHeader.js index 5eb986e581..6cdf1bf264 100644 --- a/app/component/RouteHeader.js +++ b/app/component/RouteHeader.js @@ -39,7 +39,7 @@ export default function RouteHeader(props, context) { mode={mode} text={routeLine} prefix={ - context.config.mapRouteNumbers + typeof context.config.mapRouting === 'function' ? context.config.mapRouting(props.route.gtfsId) : '' } diff --git a/app/component/RouteNumberContainer.js b/app/component/RouteNumberContainer.js index e1a9579329..faf0e0942c 100644 --- a/app/component/RouteNumberContainer.js +++ b/app/component/RouteNumberContainer.js @@ -29,7 +29,7 @@ const RouteNumberContainer = ( mode={route.mode} text={getText(route, config)} prefix={ - config.mapRouteNumbers + typeof config.mapRouting === 'function' ? route.gtfsId ? config.mapRouting(route.gtfsId) : trip.pattern.code diff --git a/app/component/RoutePage.js b/app/component/RoutePage.js index e188a22c36..25665013b0 100644 --- a/app/component/RoutePage.js +++ b/app/component/RoutePage.js @@ -342,7 +342,7 @@ class RoutePage extends React.Component { mode={route.mode} text={route.shortName} prefix={ - config.config.mapRouteNumbers + typeof config.mapRouting === 'function' ? config.config.mapRouting(route.gtfsId) : '' } diff --git a/app/component/SummaryRow.js b/app/component/SummaryRow.js index daf8e1dd4d..be72115665 100644 --- a/app/component/SummaryRow.js +++ b/app/component/SummaryRow.js @@ -70,7 +70,7 @@ export const RouteLeg = ({ leg, large, intl }, context) => { vertical withBar prefix={ - context.config.mapRouteNumbers + typeof context.config.mapRouting === 'function' ? context.config.mapRouting(leg.trip.pattern.code) : '' } @@ -118,7 +118,9 @@ export const ModeLeg = ({ leg, mode, large }, { config }) => { withBar icon={networkIcon} prefix={ - config.mapRouteNumbers ? config.mapRouting(leg.trip.pattern.code) : '' + typeof config.mapRouting === 'function' + ? config.mapRouting(leg.trip.pattern.code) + : '' } {...getLegBadgeProps(leg, config)} /> diff --git a/app/component/TransitLeg.js b/app/component/TransitLeg.js index 5ea538fff9..a264fb77d4 100644 --- a/app/component/TransitLeg.js +++ b/app/component/TransitLeg.js @@ -270,7 +270,11 @@ class TransitLeg extends React.Component { mode={mode.toLowerCase()} color={leg.route ? `#${leg.route.color}` : 'currentColor'} text={leg.route && leg.route.shortName} - prefix={this.context.config.mapRouting(leg.route.gtfsId)} + prefix={ + typeof this.context.config.mapRouting === 'function' + ? this.context.config.mapRouting(leg.route.gtfsId) + : '' + } realtime={leg.realTime} vertical fadeLong diff --git a/app/component/ViaLeg.js b/app/component/ViaLeg.js index 7f324cf3c6..0a0b62e0ca 100644 --- a/app/component/ViaLeg.js +++ b/app/component/ViaLeg.js @@ -95,7 +95,7 @@ function ViaLeg(props, context) { mode={props.leg.mode.toLowerCase()} vertical prefix={ - context.config.mapRouteNumbers + typeof context.config.mapRouting === 'function' ? context.config.mapRouting(props.leg.gtfsId) : '' } From 603230f2a90c2fc3b5703873c136edd479c3da93 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Wed, 25 Mar 2020 13:24:40 +0200 Subject: [PATCH 08/17] fix: added check that config exists in RouteNumbers --- app/component/RouteNumber.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index 6921077224..807e5cd611 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -13,8 +13,11 @@ const LONG_ROUTE_NUMBER_LENGTH = 6; function RouteNumber(props, context) { let mode = props.mode.toLowerCase(); const routeName = - mode === 'bus' && context.config.mapRouteNumbers && props.prefix - ? props.prefix.concat(props.text) + // eslint-disable-next-line no-nested-ternary + context.config && context.config.mapRouteNumbers + ? mode === 'bus' && props.prefix + ? props.prefix.concat(props.text) + : props.text : props.text; const { alertSeverityLevel, color } = props; @@ -235,7 +238,7 @@ RouteNumber.defaultProps = { RouteNumber.contextTypes = { intl: intlShape.isRequired, - config: PropTypes.object.isRequired, + config: PropTypes.object, }; RouteNumber.displayName = 'RouteNumber'; From c6c0098f08afe44aeede5d900cefade53e38c683 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Wed, 25 Mar 2020 13:30:37 +0200 Subject: [PATCH 09/17] fix: added check for config in PrintableItinerary --- app/component/PrintableItinerary.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/component/PrintableItinerary.js b/app/component/PrintableItinerary.js index 8f165bf67c..28e32f7e9a 100644 --- a/app/component/PrintableItinerary.js +++ b/app/component/PrintableItinerary.js @@ -270,6 +270,7 @@ export function PrintableLeg(props, context) { vertical text={legObj.route !== null ? legObj.route.shortName : null} prefix={ + context.config && typeof context.config.mapRouting === 'function' ? context.config.mapRouting(legObj.route.gtfsId) : '' From cc73d793722c4a583b85382d17706abcefedef9a Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Thu, 26 Mar 2020 09:36:25 +0200 Subject: [PATCH 10/17] fix: remove unnecessary checks and variable --- app/component/CallAgencyLeg.js | 8 +++----- app/component/FavouriteLocation.js | 6 +----- app/component/NextDeparturesList.js | 6 +----- app/component/PrintableItinerary.js | 7 +------ app/component/RouteHeader.js | 6 +----- app/component/RouteNumber.js | 2 +- app/component/RouteNumberContainer.js | 12 +++++------- app/component/RoutePage.js | 6 +----- app/component/SummaryRow.js | 12 ++---------- app/component/TransitLeg.js | 6 +----- app/component/ViaLeg.js | 6 +----- app/configurations/config.default.js | 1 - app/configurations/config.hsl.js | 1 - 13 files changed, 18 insertions(+), 61 deletions(-) diff --git a/app/component/CallAgencyLeg.js b/app/component/CallAgencyLeg.js index f27a6273c5..ec27fc36c1 100644 --- a/app/component/CallAgencyLeg.js +++ b/app/component/CallAgencyLeg.js @@ -52,11 +52,9 @@ class CallAgencyLeg extends React.Component { mode="call" className="leg-call" realtime={false} - prefix={ - typeof this.context.config.mapRouting === 'function' - ? this.context.config.mapRouting(this.props.leg.route.gtfsId) - : '' - } + prefix={this.context.config.mapRouting( + this.props.leg.route.gtfsId, + )} vertical fadeLong /> diff --git a/app/component/FavouriteLocation.js b/app/component/FavouriteLocation.js index e58ffb5836..b4439b0b2d 100644 --- a/app/component/FavouriteLocation.js +++ b/app/component/FavouriteLocation.js @@ -52,11 +52,7 @@ const FavouriteLocation = ( mode={firstTransitLeg.mode} realtime={firstTransitLeg.realTime} text={firstTransitLeg.route.shortName} - prefix={ - typeof context.config.mapRouting === 'function' - ? context.config.mapRouting(firstTransitLeg.route.gtfsId) - : '' - } + prefix={context.config.mapRouting(firstTransitLeg.route.gtfsId)} />   {departureTimeComponent} diff --git a/app/component/NextDeparturesList.js b/app/component/NextDeparturesList.js index deb1bf1147..294621d050 100644 --- a/app/component/NextDeparturesList.js +++ b/app/component/NextDeparturesList.js @@ -104,11 +104,7 @@ function NextDeparturesList(props, context) { alertSeverityLevel={departure.alertSeverityLevel} mode={stoptime.pattern.route.mode} text={stoptime.pattern.route.shortName} - prefix={ - typeof context.config.mapRouting === 'function' - ? context.config.mapRouting(stoptime.pattern.route.gtfsId) - : '' - } + prefix={context.config.mapRouting(stoptime.pattern.route.gtfsId)} /> diff --git a/app/component/PrintableItinerary.js b/app/component/PrintableItinerary.js index 28e32f7e9a..bd7b58fbe1 100644 --- a/app/component/PrintableItinerary.js +++ b/app/component/PrintableItinerary.js @@ -269,12 +269,7 @@ export function PrintableLeg(props, context) { mode={legObj.mode.toLowerCase()} vertical text={legObj.route !== null ? legObj.route.shortName : null} - prefix={ - context.config && - typeof context.config.mapRouting === 'function' - ? context.config.mapRouting(legObj.route.gtfsId) - : '' - } + prefix={context.config.mapRouting(legObj.route.gtfsId)} /> diff --git a/app/component/RouteHeader.js b/app/component/RouteHeader.js index 6cdf1bf264..68e23d495c 100644 --- a/app/component/RouteHeader.js +++ b/app/component/RouteHeader.js @@ -38,11 +38,7 @@ export default function RouteHeader(props, context) { {trip} diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index e81ec0079b..04a83f7b36 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -14,7 +14,7 @@ function RouteNumber(props, context) { let mode = props.mode.toLowerCase(); const routeName = // eslint-disable-next-line no-nested-ternary - context.config && context.config.mapRouteNumbers + context.config.mapRouting ? mode === 'bus' && props.prefix ? props.prefix.concat(props.text) : props.text diff --git a/app/component/RouteNumberContainer.js b/app/component/RouteNumberContainer.js index faf0e0942c..5c3942c7b1 100644 --- a/app/component/RouteNumberContainer.js +++ b/app/component/RouteNumberContainer.js @@ -29,13 +29,11 @@ const RouteNumberContainer = ( mode={route.mode} text={getText(route, config)} prefix={ - typeof config.mapRouting === 'function' - ? route.gtfsId - ? config.mapRouting(route.gtfsId) - : trip.pattern.code - ? config.mapRouting(trip.pattern.code) - : '' - : '' + route.gtfsId + ? config.mapRouting(route.gtfsId) + : trip.pattern.code + ? config.mapRouting(trip.pattern.code) + : '' } {...props} /> diff --git a/app/component/RoutePage.js b/app/component/RoutePage.js index 25665013b0..3aaa5a4857 100644 --- a/app/component/RoutePage.js +++ b/app/component/RoutePage.js @@ -341,11 +341,7 @@ class RoutePage extends React.Component { color={route.color ? `#${route.color}` : null} mode={route.mode} text={route.shortName} - prefix={ - typeof config.mapRouting === 'function' - ? config.config.mapRouting(route.gtfsId) - : '' - } + prefix={config.mapRouting(route.gtfsId)} isRouteView /> )} diff --git a/app/component/SummaryRow.js b/app/component/SummaryRow.js index be72115665..5ddf9f4386 100644 --- a/app/component/SummaryRow.js +++ b/app/component/SummaryRow.js @@ -69,11 +69,7 @@ export const RouteLeg = ({ leg, large, intl }, context) => { className={cx('line', 'call')} vertical withBar - prefix={ - typeof context.config.mapRouting === 'function' - ? context.config.mapRouting(leg.trip.pattern.code) - : '' - } + prefix={context.config.mapRouting(leg.trip.pattern.code)} /> ); } else { @@ -117,11 +113,7 @@ export const ModeLeg = ({ leg, mode, large }, { config }) => { vertical withBar icon={networkIcon} - prefix={ - typeof config.mapRouting === 'function' - ? config.mapRouting(leg.trip.pattern.code) - : '' - } + prefix={config.mapRouting(leg.trip.pattern.code)} {...getLegBadgeProps(leg, config)} /> ); diff --git a/app/component/TransitLeg.js b/app/component/TransitLeg.js index a264fb77d4..5ea538fff9 100644 --- a/app/component/TransitLeg.js +++ b/app/component/TransitLeg.js @@ -270,11 +270,7 @@ class TransitLeg extends React.Component { mode={mode.toLowerCase()} color={leg.route ? `#${leg.route.color}` : 'currentColor'} text={leg.route && leg.route.shortName} - prefix={ - typeof this.context.config.mapRouting === 'function' - ? this.context.config.mapRouting(leg.route.gtfsId) - : '' - } + prefix={this.context.config.mapRouting(leg.route.gtfsId)} realtime={leg.realTime} vertical fadeLong diff --git a/app/component/ViaLeg.js b/app/component/ViaLeg.js index 0a0b62e0ca..98f8471620 100644 --- a/app/component/ViaLeg.js +++ b/app/component/ViaLeg.js @@ -94,11 +94,7 @@ function ViaLeg(props, context) { Date: Thu, 26 Mar 2020 12:04:32 +0200 Subject: [PATCH 11/17] chore: refactor u-prefix into a more sensible solution --- app/component/CallAgencyLeg.js | 4 +--- app/component/FavouriteLocation.js | 21 +++++++++------------ app/component/NextDeparturesList.js | 2 +- app/component/PrintableItinerary.js | 3 +-- app/component/RouteHeader.js | 12 ++---------- app/component/RouteNumber.js | 11 ++++------- app/component/RouteNumberContainer.js | 8 ++++---- app/component/RoutePage.js | 2 +- app/component/SummaryRow.js | 4 +--- app/component/TransitLeg.js | 2 +- app/component/ViaLeg.js | 2 +- 11 files changed, 26 insertions(+), 45 deletions(-) diff --git a/app/component/CallAgencyLeg.js b/app/component/CallAgencyLeg.js index ec27fc36c1..2343fe7b9a 100644 --- a/app/component/CallAgencyLeg.js +++ b/app/component/CallAgencyLeg.js @@ -52,9 +52,7 @@ class CallAgencyLeg extends React.Component { mode="call" className="leg-call" realtime={false} - prefix={this.context.config.mapRouting( - this.props.leg.route.gtfsId, - )} + gtfsId={this.props.leg.route.gtfsId} vertical fadeLong /> diff --git a/app/component/FavouriteLocation.js b/app/component/FavouriteLocation.js index b4439b0b2d..f06f0f79a8 100644 --- a/app/component/FavouriteLocation.js +++ b/app/component/FavouriteLocation.js @@ -11,17 +11,14 @@ import { favouriteLocation as favouriteLocationExample } from './ExampleData'; import { isStop, isTerminal } from '../util/suggestionUtils'; import { addAnalyticsEvent } from '../util/analyticsUtils'; -const FavouriteLocation = ( - { - favourite, - className, - currentTime, - departureTime, - firstTransitLeg, - clickFavourite, - }, - context, -) => { +const FavouriteLocation = ({ + favourite, + className, + currentTime, + departureTime, + firstTransitLeg, + clickFavourite, +}) => { const { name, favouriteId, lat, lon, selectedIconId } = favourite; let departureTimeComponent; if (departureTime && currentTime < departureTime) { @@ -52,7 +49,7 @@ const FavouriteLocation = ( mode={firstTransitLeg.mode} realtime={firstTransitLeg.realTime} text={firstTransitLeg.route.shortName} - prefix={context.config.mapRouting(firstTransitLeg.route.gtfsId)} + gtfsId={firstTransitLeg.route.gtfsId} />   {departureTimeComponent} diff --git a/app/component/NextDeparturesList.js b/app/component/NextDeparturesList.js index 294621d050..602b2c7bf8 100644 --- a/app/component/NextDeparturesList.js +++ b/app/component/NextDeparturesList.js @@ -104,7 +104,7 @@ function NextDeparturesList(props, context) { alertSeverityLevel={departure.alertSeverityLevel} mode={stoptime.pattern.route.mode} text={stoptime.pattern.route.shortName} - prefix={context.config.mapRouting(stoptime.pattern.route.gtfsId)} + gtfsId={stoptime.pattern.route.gtfsId} /> diff --git a/app/component/PrintableItinerary.js b/app/component/PrintableItinerary.js index bd7b58fbe1..497d515715 100644 --- a/app/component/PrintableItinerary.js +++ b/app/component/PrintableItinerary.js @@ -214,7 +214,7 @@ TransferMap.propTypes = { const isWalking = legOrMode => ['WALK', 'BICYCLE_WALK'].find(mode => mode === getLegMode(legOrMode)); -export function PrintableLeg(props, context) { +export function PrintableLeg(props) { const { index, legObj, originalLegs } = props; const legMode = getLegMode(legObj) || ''; @@ -269,7 +269,6 @@ export function PrintableLeg(props, context) { mode={legObj.mode.toLowerCase()} vertical text={legObj.route !== null ? legObj.route.shortName : null} - prefix={context.config.mapRouting(legObj.route.gtfsId)} /> diff --git a/app/component/RouteHeader.js b/app/component/RouteHeader.js index 68e23d495c..954af1874a 100644 --- a/app/component/RouteHeader.js +++ b/app/component/RouteHeader.js @@ -5,7 +5,7 @@ import cx from 'classnames'; import { PREFIX_ROUTES } from '../util/path'; import RouteNumber from './RouteNumber'; -export default function RouteHeader(props, context) { +export default function RouteHeader(props) { const mode = props.route.mode.toLowerCase(); const trip = props.trip ? ( @@ -35,11 +35,7 @@ export default function RouteHeader(props, context) { return (

- + {trip}

@@ -56,7 +52,3 @@ RouteHeader.propTypes = { pattern: PropTypes.shape({ code: PropTypes.string.isRequired }), className: PropTypes.string, }; - -RouteHeader.propContext = { - config: PropTypes.object.isRequired, -}; diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index 04a83f7b36..55a23ba9d4 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -13,11 +13,8 @@ const LONG_ROUTE_NUMBER_LENGTH = 5; function RouteNumber(props, context) { let mode = props.mode.toLowerCase(); const routeName = - // eslint-disable-next-line no-nested-ternary - context.config.mapRouting - ? mode === 'bus' && props.prefix - ? props.prefix.concat(props.text) - : props.text + mode === 'bus' && props.gtfsId && context.config.mapRouting + ? context.config.mapRouting(props.gtfsId).concat(props.text) : props.text; const { alertSeverityLevel, color } = props; @@ -217,7 +214,7 @@ RouteNumber.propTypes = { badgeText: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), icon: PropTypes.string, isRouteView: PropTypes.bool, - prefix: PropTypes.string, + gtfsId: PropTypes.string, }; RouteNumber.defaultProps = { @@ -233,7 +230,7 @@ RouteNumber.defaultProps = { isCallAgency: false, isRouteView: false, icon: undefined, - prefix: undefined, + gtfsId: undefined, }; RouteNumber.contextTypes = { diff --git a/app/component/RouteNumberContainer.js b/app/component/RouteNumberContainer.js index 5c3942c7b1..86885af2f6 100644 --- a/app/component/RouteNumberContainer.js +++ b/app/component/RouteNumberContainer.js @@ -28,11 +28,11 @@ const RouteNumberContainer = ( color={route.color ? `#${route.color}` : null} mode={route.mode} text={getText(route, config)} - prefix={ + gtfsId={ route.gtfsId - ? config.mapRouting(route.gtfsId) - : trip.pattern.code - ? config.mapRouting(trip.pattern.code) + ? route.gtfsId + : trip && trip.pattern + ? trip.pattern.code : '' } {...props} diff --git a/app/component/RoutePage.js b/app/component/RoutePage.js index 3aaa5a4857..0a19a8ea0f 100644 --- a/app/component/RoutePage.js +++ b/app/component/RoutePage.js @@ -341,7 +341,7 @@ class RoutePage extends React.Component { color={route.color ? `#${route.color}` : null} mode={route.mode} text={route.shortName} - prefix={config.mapRouting(route.gtfsId)} + gtfsId={route.gtfsId} isRouteView /> )} diff --git a/app/component/SummaryRow.js b/app/component/SummaryRow.js index 5ddf9f4386..6cfe6662f6 100644 --- a/app/component/SummaryRow.js +++ b/app/component/SummaryRow.js @@ -54,7 +54,7 @@ Leg.propTypes = { large: PropTypes.bool.isRequired, }; -export const RouteLeg = ({ leg, large, intl }, context) => { +export const RouteLeg = ({ leg, large, intl }) => { const isCallAgency = isCallAgencyPickupType(leg); let routeNumber; if (isCallAgency) { @@ -69,7 +69,6 @@ export const RouteLeg = ({ leg, large, intl }, context) => { className={cx('line', 'call')} vertical withBar - prefix={context.config.mapRouting(leg.trip.pattern.code)} /> ); } else { @@ -113,7 +112,6 @@ export const ModeLeg = ({ leg, mode, large }, { config }) => { vertical withBar icon={networkIcon} - prefix={config.mapRouting(leg.trip.pattern.code)} {...getLegBadgeProps(leg, config)} /> ); diff --git a/app/component/TransitLeg.js b/app/component/TransitLeg.js index 5ea538fff9..62ac1f35ec 100644 --- a/app/component/TransitLeg.js +++ b/app/component/TransitLeg.js @@ -270,7 +270,7 @@ class TransitLeg extends React.Component { mode={mode.toLowerCase()} color={leg.route ? `#${leg.route.color}` : 'currentColor'} text={leg.route && leg.route.shortName} - prefix={this.context.config.mapRouting(leg.route.gtfsId)} + gtfsId={leg.route.gtfsId} realtime={leg.realTime} vertical fadeLong diff --git a/app/component/ViaLeg.js b/app/component/ViaLeg.js index 98f8471620..9541dd18ad 100644 --- a/app/component/ViaLeg.js +++ b/app/component/ViaLeg.js @@ -94,7 +94,7 @@ function ViaLeg(props, context) { Date: Thu, 26 Mar 2020 15:49:29 +0200 Subject: [PATCH 12/17] chore: fix visual tests --- .../AirplaneLeg_normal/normal/chrome.png | Bin 8990 -> 9296 bytes .../AirplaneLeg_normal/normal/safari.png | Bin 10379 -> 10470 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/visual-images/AirplaneLeg_normal/normal/chrome.png b/test/visual-images/AirplaneLeg_normal/normal/chrome.png index 1265e905110a4736872b884cbbbaa320eb1405b9..82c1716ac065fc1121a29e7a2e4a83e038339c04 100644 GIT binary patch literal 9296 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 literal 10379 zcmZX4byU>d_cazMf}n(i0!oK;r?iBWgmiaF!+@Xy(jeUpB2vDz+nviQh8q&LHtZDyAyZ<88Pjok z3H|JpM-=$V3{pd5odaWdxO~qu{FPV9FxX~Dwd4p)Xy|SxT;?wgjGOlIY!f!@m*mOj z4O=|CJx5AUM~Cj>a_rURbVvBxIPUP%4+{H}RSsyrA|LbeEaMOD9UKBeLbCOnK1Vxm zwza)l8z~6N&0RID=c1<%g8wIQSgM-u-u*;2bo=!5w7Io4G9f`)M~B3|>PfazKxrwP zs;cVnQ=RMxH5U|-rPHhP?RZw>K%LX8%k$O0l}uqI0^j@G{`DlwC@3gY9eSQFJx0YM zkyTO}Fl@DW<><&R`WZw2Z-uq|!Ikyjiru5XwvplCinP0vKkdAo)<;x2s!}BB)e09E z+ar069hQ5RVBLXwYWbA>ed_1WKaGvO{nwqShWYS*V-PKD7~YCaN*bn`C!VWpU|}I` zVL>-qq#Nr=rHeZ}VGt1=?W>wM+<9bgZ~sbKS|nRZ-^fULb@a82OjBFiif<>Y?c~qj z1)7xy9hn&!KV7y-2nh-CECSlPyZ?-h{hUOI`aQ_j{^iWg&CRb^Ls?Z-Rg5^a;OFO0 zS-BJsQ1kTk%x*4qSe6?p&}{vo-$b|M(VG|*g{$=DjZ?=X9Gv#9F0su1o!Q^FK4TJp z4hp)D!Wxgk#l`iUoLov)Hb3;sojKpg)KqyRBZ@nB?)|goSTF>(nO9 z&g$*$?VYUU6~(a_qJ|K2nQTwjUYstcVm#%I^1c5!A}L9BxhFXuQqcDoVx&m77a}Y5 z`gQi}M9!`x9vn+c%MYvz0v;#KUKhJ)D7R2C8it3XDP>|%d}nfk@L$X~`rfCBmcDuG z79pQA1G?|c5DC$D@0cY+pFHE?A&i#(Lu^|k4B@-c*40HpL*oyj(zmvL{qiMBrbI|% zS66=HE)@j@_M=Ciq_Yh=qG-p)#&(9)bnPzBoS-aPE>8E0%gbMI#dIhX=?F|tPSS09 zd?H&33=5MiP+j={_-1GHi6Uny9=YCp<(SzAvrnu4F$Sr#NmB( z^pk&ywsgBT79<6#K^g@kwDhOyl9G~ahy$~YjST{3Jru9Y!^aD)VWv~nPV8oVFLP|( zz9rE0y5vB{-+6Na8D^`Qx@7aguXd{gl#Pvzub>KgdO~ri<=!o}JzTWs5fl_m;&lq_ z6}nEcnX1+|F=@#V4;m{mzW+kAB1nwY8CPa71^;GC7>?8542Y z$il-U!$_9k0!~g&zC=Vcl6qZytgjdP`0?YCC%)xq;nJ_|x=isPe8;WH`0hk592}gc ziE_*Eb|d2!OGtZ2Tyt~tpTB-(D&?X;ts0!{%$b#I+`M_yKP=4jaBX<9?tNlW-C5w| zq!u!sPV%h zZ5bOQu(h@AN#<)k->whSV$6XNY6gLYC%kQ2ZIXd@)mGB|fdFMOP=Q*mU0?;-PHU>_2Gwj7k3DMM0PAjMw#h#KDTN zy*;Y{;$U{AKXZwS3cxU5qdYM5DPM_M|8o?`fv$tqK_0g~3c&RjY}4?Ifpk$cWD!5s z^>~)d#mybJv0(*JK~|1?vD1Ww1cXx4-hmQh8D#i#J*})5ifWID&X2cq-1h%X*0@EY zViGY!f(Hi&pUiq=DbV2Jg;u7eeE>w(H#cvO)%BEm_3AF<_hS9^C6h&Y!q(I;hl>+C znoZt;Dtl;l9dfUs9vO~Yi<@RDJ{+J)x!4ah>nf*Q_2;iiiCoF=A=FY$+fa# z#xEei!o?N4R(JQiad3N@u(y9`=m>3OyOGCUJ2kIyGM|eHpvS;$$NTf6hfkgaCnhEy zyrZ{YA9;cQLPKnGqC8&6t8Ti9jg2ibTPAjXb+vu-ZzcWpSGx8Mm4~-|C;Mpma8sJo zcPLCSkLF9mLpnX`0U))j9s6m2x$S?I6TyG@P#Ef$=iTfF<$o(HZRM7u2R+N{>p>#v zdMkbD2OHy&A8(<>@Z4|h?UnBs({)?IOWUzDw6qL@HW$!6HWmlzjf01$@=w5NrSArc zySqDdD~!-gT3SGu{CozB;qQNrHvfLC_cANe{zWCQA`?^zu#MX5es$qCQD&Yw_@2e% zsQbmfbkU8eU$F-Vj#^q;KZ=W=J$rWJ1Hf`AAUrAtK?C#^xq8pbA0;K< z-_^X(C~FuPPzn^Fpzs0Ax#3&S!(ls}^y3FJZAFPeu0K3_FjEq1_3&hO!6_7rfcd54 z(%nWjirCI<)t$4$b?An@5HdSQ$L5X>bQu|$Rl-w-79&+ZA_47_mXJm?N5x|i2?^Bx z{{FbQxRs&K?r!6ee05x0+#m1eL~`ZpeyZfD?(WQq3SJ((nRef@UgJ4VwiM$I-=>vE3Ao;J^1&hJC2(Z!?TA$F6ruT->x*@S-}is*nUO}CqZNR zkeyA*!^2}-hxTO+TJ<_bMt1^7rc@-=Qj2CnSC{N+W#l|dyAdlqX}r>wwA7@#ab_kJ zt`4|XphRZ429ZQCfiOVESdAOojOY0a0EorqR4>mA*PwZtX-7@|iamo|3;@imtgKf> zmc!rg;8x`0UQcLfXsmfW1>#4Ltt16p2#R!|*9%w|RJ+o#Tz~Iu&>owrAxg?$Oamo@SZNpLjOY6`;b~_1AShR>`*Ym-rzPnQULPspyE_C=DqoO(uRk zjH}tmP+m62Am$9Fee;#scA6i+PE1-F9l%xqTJq33D&qR`SV~UrtIPJZtGjz-Y^>=I z@$dZhRY_q&S8>qBS!^b`({?J?A3WuK2i;QI_EWw}9zMXK(P*JIGQ!Xu-t8?)0pvCS z8fU398`D}WsTUjE0ff$0FEyz-9MKFW<_bNYb`SHqKA#ydUHu~No= zTBoCwS@l7Rv_o?R%NTz`z&phmV+X69EKPb-LW+x7$R&bj2eM^k^orXeRM$E&*z4C+=Cp^SKxth6*e&h5EzrCjB>goH=L#GT$~SdO9N zfB$Bx=1IxOL{_-DPDkRXJ8eeeJbl{z;l?e;5tfgQ>SV|;!yl`$AHvH*^MP+mjPBK6 z?A>QG>Cyw?fn1l$c7gWPL(h~3b4m7se#RDE^t-D?Ze*B&wN)A%(;zU42>l~a4r z5MdoItK%Hb*!_h2#CPsvyaKmnlft^F`BFeY0C4FQ$5k_SA|uxL9V+>)<=Fb^&V3R-+K=^;l#jd3km~V68MkUU=%IhTslCuFEM*N? zvs0-dK*(nEVS08ngV&h0KqjlqUewSYL*U@`>(`i!7OEFDp9>Xhy2i)j;nGU1##!Nj ztntA*wFn4&mQt_co>RL|ZvHx+A`LEY0Xkkt<%*Me9&OCw`!^SH>Fc;oID~ubyF_&K zO!y!P<`))dX=rFTzIK=x85!-k%VYZtK(Fy$k7_ewHQ&&KwqQ|SEt2Ols?0&hf=ow6 zMMVq(<_{k}pwun^zgd8+g5)!|SO#dz5>G~wrr+;%baYqH$#@*Ktn@A>hN6R zK7oR1Yppnrv7ods#K_BU?_^wilFBi*o{Ltenlsnr#|C_YL;xXXVDP-Br>FN2t2YS5 zhe(;$-9`sFs>tDQ%j1LJSOVIC>map;0(YnWY{SO^7B4R^s@Dn4tAjbG8>PJf#RivW zhfnxjzW}@{A@$eP6wmuJ_VMv?zy|43TZ|W7RFUn>Y;2jp0aP3u!sdWsng4CO3V8h1 zodl{vDMv1O?SUxvZQ*YpEo2Rp*hOz#ZF$lv4V@_}4Ss!n4+CSdEu0+Cjx4hM?%lh< zI0an`&qooJc5eC+*uwBR*C)fAC*`cU!xjdHhIt++Go^d&)p-Zz3nHQ_`nm>-m$IHh zgsqZII)(q*Zo>!W#u3jRMLrJ6KUei$nh?1B&ix3v%r^~=uk@0x2+$E)wFs3WEymb| z?d>qY0byZb*?87FfFXriRU)pg+#qEN`cCDOdBvfLLv}EhL*YO8`t>WG&h|XmI&h_c zSkI!hYZ2u`H{xMMfY#l;&a(nZ(3nX=UOJ|>u@OC~La=&qS=ae+o|+S9F8%z*MsQJ) zt?$-<+u?uC;`VXlZ)KQfrHx{xjdrqql~!nKDyaguXO5Yr6+L}kYeGrHd_< zO!${CFQGYM$_3RT4(Wt045J@C}G z8X5zort-=AfI7h6bpD-WfChk9gDV%QKzMZC;7Z4Ogf5-;3i3`MWCa81y zy>N8czPyx`$L=S^ykVeAD;ND{?5OKh)YLL>N(ToAPr*ZY=jdnz&P_0>P>PSwZIIFh zgYO;o|GkE=W`#ToBNgfiCznK78P1E1>I)`hlhC-``vq);Ol3L%%5)I$u3;?GRyn!DT6)nxpw>332YwZ~Sn6ncB?~?}z16u(A{2?}W1Jai4OZR4f zR{;SR6BFB6%}E7emRq^M3qk`@FZ@WDZo;_w=TkoCF9``9aO4i{zb0_AV4{48)j{NT zAt0)arR2zz{N=oPVA4%sAw@$=PJRpQs9Hal_DenKE#if>weOW=I&O?wKVJgJX>V`e zn5@E~d2$^ADevm~v#hgNi_sL$=5e-~g9uPDF`)uFk`3C61{Zy6x>m-+gI|HWVf4=* zU+^@4K<2ar6Ouobk(UQ=!w=fw%0@|ITwL4kLM!;K9fnguWOqL)REa_Gz>7mP%L(ouM)uKB zQ9eq!6yO5-``?}24j~@RR~H3a4y1Jh5McrZ6l!cqXfz@+P~#f%$T>k{RaM0b%Kc9vjDI8p^Kyb1{MH zZ>23YBV(w`w3{Sd5YS2h8`)IB+QwsA*aSbZ!Or^qEHmqf0SIYVcXu{E9&9}K56bM} zsIKYJ#yGqAfDbe|5Fo%ylZKKFjg7NQ3;oke7`3ah@$p-H?%|A8+NSDY#4>7U!0jNU z?%_J))b4fAgD0d;$Hv9gIy6)!Qt;Bm#N_SUw^8x0kkW5T6qGVJTCGh@nUj{Vk-NPy zZzJkZ5d)N~yi1;j)l5;=I8D^76dXb+w={QXNTFE0=E#_f5*ot~Z!{1Ht}P0f3o zOF0JIV4x(@*?Yx?3}?;^I<0*i^awA!f;Zv4a>xdBWMQS&v$WzU;qgAyfr~W5?bA?u zN0+~F^4bsk@48E9YN9HOzcuzgY8_~#E2QiTju}lz zOl)Xnbs@$=#H-Vvm6hRyIs8y60Kl(X!BA6HL!Q4mo)|0jjK6oG#bvlQKo>|6Oap-Z zeSnL3w>2eN~(9U`VZH9o((7*ayB*`8m(>)e*UDs zJ_V#31qk^jcXXoeJsuQlv72%ovQ@L(sx1VT8_d&vzJV%y>RXgs&wb9CQNK>Y2%-8JcoLne;f za4~z}tZhH?@*_b%DVQe^D(*@^7HG8a)v} zL?LYo_z(;=G%Q^D!RG-I@w=r(f-bUi2{FY0v2%5GCE%9?Xaw&1gxAp@Mny;m^7-@U zfcp<(Vq&@yIAFA+v9sSRBvYVhXJ)k`wS(R-OvEY(0T-AI!FhqNRPky>Ef3 z&TU z7}Dv$l$2E{5^~jkx#ubPK*}byz*}Gvva`S6)Z2^YD z#!!J~EZj$bfhL#DOxg)2u7Sp+ZN8bOns)zVGEwBtou_M z+$t`wI6@N>iNWGG1Xpje)?ID+E%@&+p@^<_3xqp)cYXD~)}ejL9+@{l0^)fbsDd6d zfmQHz$g;JiWqxa`@QsPJbqJ(q&#BCaA{Y;GaWIRO2ioqsSw4!iEizpLlosRQWTCaxjz}z4FH3Q~yJT6Jp>&N3iIV-VAlm!Dk9Z{~H^Sr9 zuIdfLq6nA|zyc^YZrt!V8aI_qH2CU^QLo>zhQ5c z4_)xaDXUo@nU$5*t5+xIY+%vjL1iNCQ84Vm3V=JOgwE8^@Uqqc)aei7PJEbL`GUUz z7Y+E0($#%mZMN2VGa+ilaeX8N^pFG0dC}3)Va#a+&NDY3-@0QJGV$T~nf+!k_%j3` zbwwaR2X+D72i8LhjtWEtexSA1MJgmDR2$C-!~qGYFpC5eN&-p^&Y6{yBQ%9}7DdAE z`V!_r0KCIQe!v@Es~DOtI=B=EVdKCXukG%S~Oc}HF*n0iZu$`xicp!o$L_;8G>1A{BGw zo>o}@l>jXT={q()zPt5no2X{HQ2UqtT;m;ZNhv~}@gNRpph5v#_I6uIWt_m8IfW70 zVRdm=R~IuEmt^|Mxnv{EHqN>NWAWa%{1LJh-LCxcqoJ|!CV6J#NIls4$k{j&6~HFN zm z7@L}s!x$mAPJCc+5av;%GPl8Nk<`;81KkalPMQKu)=2C;AW3_7_Y0S2rGV}+4C#-)E=ZM6WG^vE z44>DGNy|0iA=%%z&xJ`{PdHZ9PopbrWuy@#=IW=$BkkSvWRwE(6Fc$%=h!|8xzae1 zNs@QCA6(o@^sFzf9K)T-?PPquUKf3=rZtdDni%E1du`oh-bcE~PegL{%AKhg7%*JaRKUe*QL6bsSc7}Vt<#2rlRs|#A(0O&HGb0 zh?TV`Rpg%brSt8sX_?&3y@hSXZyXve$Ih*j$}S8d!XIODe?RW5{r4~PnA=(1<@zz3 zArEHK3&*RW5{4&fx$KW?HG$uLQqca+&O)0KyurJFT))nz$(-g*PfK`ufk=CoyFXcT z({sX!*a3%U`^W|cEz#~7Rk+$m2I^sZ=y6rgMT%+;Wt_z>Cq6ylF_Ejcd@sc1{ zB~uQedoAmn>h_@^n&o5n(}0@PKiy-pt7Bz1Qcyf97w}Qmv8E|$1;V&)tuMTlamlO$ zaww?b;A^tQNkAMec(|8X5H8kgIyf-6BS{fxrIEzcfD%Q>yL zs`-{^dS}-fuUi-dPp9!)@~v-ceYS1+2?%6+acpuhtk$M-!1=i zpQ|^_1W4PlscB`Tz3hz5l$Pgiw9PKDkY{hYxi--8w{Qp{?!+`Lmm|X_skMPwBuIx0 zhsf}^h-M0UweEfyDfU9!kUY`3ruxKGwyIO22cIdW4~H4?u4hCWSb3Jwq|WUr z?rcY_$1?nNOVqSeS28HM7P)ChTXkT)Eb@Xrvh^43e}zP+9Zf;?tCzoFQcOcrYUh+p>otzEPh*_a=cRaUWUc=AXhIO z+{KfYo!~4PrH}0V-8kfrGSf)N%Nf%$RKYfw>#(MwPahJN$We!Rf0Vtwt;h6S*N&ze z?*Q@VKY@w;eTI$ng6=hr&1$|&{x_>*L&s(1m_Ebfc2DJo^-UE-=M>NnC}{zsiH?bX zYTwvPwlpzgERPTJ=3l|SZl_zQtVSICSD$x{9|nMyhSwaQ|F6J(hO{`5C&2*I Date: Tue, 31 Mar 2020 09:12:42 +0300 Subject: [PATCH 13/17] fix: clean code and fix layout problems --- app/component/NextDeparturesList.js | 1 - app/component/RouteNumber.js | 4 ++-- app/component/SummaryRow.js | 4 ---- app/component/departure.scss | 2 +- app/configurations/config.default.js | 8 +++----- app/configurations/config.hsl.js | 2 +- 6 files changed, 7 insertions(+), 14 deletions(-) diff --git a/app/component/NextDeparturesList.js b/app/component/NextDeparturesList.js index 602b2c7bf8..b4a9d7ec3b 100644 --- a/app/component/NextDeparturesList.js +++ b/app/component/NextDeparturesList.js @@ -131,7 +131,6 @@ NextDeparturesList.propTypes = { NextDeparturesList.contextTypes = { router: routerShape.isRequired, - config: PropTypes.object.isRequired, }; export default NextDeparturesList; diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index 55a23ba9d4..9734a468cc 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -13,8 +13,8 @@ const LONG_ROUTE_NUMBER_LENGTH = 5; function RouteNumber(props, context) { let mode = props.mode.toLowerCase(); const routeName = - mode === 'bus' && props.gtfsId && context.config.mapRouting - ? context.config.mapRouting(props.gtfsId).concat(props.text) + mode === 'bus' && props.gtfsId && context.config.getRoutePrefix + ? context.config.getRoutePrefix(props.gtfsId).concat(props.text) : props.text; const { alertSeverityLevel, color } = props; diff --git a/app/component/SummaryRow.js b/app/component/SummaryRow.js index 6cfe6662f6..19c45bf8f4 100644 --- a/app/component/SummaryRow.js +++ b/app/component/SummaryRow.js @@ -93,10 +93,6 @@ RouteLeg.propTypes = { large: PropTypes.bool.isRequired, }; -RouteLeg.contextTypes = { - config: PropTypes.object.isRequired, -}; - export const ModeLeg = ({ leg, mode, large }, { config }) => { const networkIcon = leg.from.bikeRentalStation && diff --git a/app/component/departure.scss b/app/component/departure.scss index 7ec23fd65b..6e08c5c0da 100644 --- a/app/component/departure.scss +++ b/app/component/departure.scss @@ -18,7 +18,7 @@ white-space: nowrap; .vehicle-number { - width: 2.5em; + width: 3em; } & .route-number { diff --git a/app/configurations/config.default.js b/app/configurations/config.default.js index 3877998186..dd9cf58338 100644 --- a/app/configurations/config.default.js +++ b/app/configurations/config.default.js @@ -778,10 +778,8 @@ export default { /* Function that can be used to configure route names before displaying them Takes routes gtfsId as input */ - mapRouting: function mapRoute(routeId) { - if (!routeId) { - return ''; - } - return routeId.split(':')[1].substring(0, 1) === '7' ? 'U' : ''; + // eslint-disable-next-line no-unused-vars + getRoutePrefix: function routePrefix(routeId) { + return ''; }, }; diff --git a/app/configurations/config.hsl.js b/app/configurations/config.hsl.js index e4ce825328..95da15aff4 100644 --- a/app/configurations/config.hsl.js +++ b/app/configurations/config.hsl.js @@ -538,7 +538,7 @@ export default { /* Function that can be used to configure route names before displaying them Takes routes gtfsId as input */ - mapRouting: function mapRoute(routeId) { + getRoutePrefix: function routePrefix(routeId) { if (!routeId) { return ''; } From b493bc64b031e6382ab013a11f4626b02f17c2b4 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Tue, 31 Mar 2020 09:53:43 +0300 Subject: [PATCH 14/17] fix: reduce padding to fix layout problem on route page --- app/component/front-page.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/component/front-page.scss b/app/component/front-page.scss index e0d01949da..d342199bb1 100644 --- a/app/component/front-page.scss +++ b/app/component/front-page.scss @@ -354,7 +354,7 @@ div.route-tabs .tabs-navigation.bp-large { .vehicle-number { vertical-align: text-bottom; - padding-left: 0.4em; + padding-left: 0.2em; } } From 58a20dbad610bd504988b79d7e38e79dce4d8c8e Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Tue, 31 Mar 2020 11:01:40 +0300 Subject: [PATCH 15/17] chore: update visual tests --- .../added-padding/edge.png | Bin 3425 -> 3295 bytes .../Departure_isArrival/isArrival/edge.png | Bin 4598 -> 4065 bytes .../Departure_normal/normal/edge.png | Bin 4019 -> 3747 bytes .../Departure_with-stop/with-stop/edge.png | Bin 4208 -> 4093 bytes .../normal/edge.png | Bin 3570 -> 3518 bytes .../StopMarkerPopup_basic/basic/edge.png | Bin 37253 -> 35493 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/visual-images/Departure_added-padding/added-padding/edge.png b/test/visual-images/Departure_added-padding/added-padding/edge.png index 79bfdeccabafd66ef9506278404c2ee1a3eb5664..23197dc7a330ea82d031c377d5d3672004c33773 100644 GIT binary patch literal 3295 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 T8@+Y-Isss2wx*wqy%YZr4j8L1 diff --git a/test/visual-images/Departure_isArrival/isArrival/edge.png b/test/visual-images/Departure_isArrival/isArrival/edge.png index 1230f0f8759d1b655ea6e1adcd9d228ff2d9598d..41cdfd2ad6e9e30492101475b6c8b361868da27d 100644 GIT binary patch literal 4065 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 literal 4598 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 JTB&Rq@jv)L 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 N002ovPDHLkV1lwlOE3Tc literal 4019 zcmV;k4@~fhP) zdtB7jw!pv08+pk?(?JkNPz*J3@Ck~KnoM*&qCL2AB~5Q~HBY8?)axUV4Cx;ARMy8V zCCrYdm0qwgQ&Gr{l9FO1k3e(eIXq@m9z%Nn7#K$x;+f)Ue?Oo3e3-r0UVH6fKJ#0@ zwbtH0liRm%-^K_gCML$38_~q@PEXyf+kBl>$$`vr>Tb1e4OV7d2=R4dlGOeWvQ8in z2n2!$gUO%OF?ch%fE9;-ZI_N6A$i-V#utO&4 zN)KCe9*x>SKglLf%V!n-Spb#qa``2YL4e=00{E5qo1?YUH!><8nRW@yeM#i}}V|h#I7ysa^*P^nuKYk!W+^T{a)!A-Xk(1f+3gbu z1b=$k?HGh??T-3ZgSL^(oS4W$Kd1TzEd}4NVsUaT#SJpnPqQ$17c=`c?H!!@rYDiP z_qL8D_w0<~GY%{#-PVcW=h)xCdKHQwlX&CdXZBk^JrG;Vss^ z=Ezkxr516$_BY*J7N)G7(2J#kJy~<)DxaP&BS)pX>b@v*B{@&S#*+n{$kTAW_BZCr zTpze&@ZGx#UOQ;mVu8KyG?uMe%w(^Qa}myezJWy5C}z(KqF2iYu^~~#sM+%fY8aHA z$f{KbnHJM=7v476))aq$eFA|%(2;a$uYxM8U?zIK#>5^{%zg*uVb-mkkGbO(8lu znkiln*tVwl1MCwB1cHvF$%sL-MTOcd;=eq~kf|>**a~0~dp>mIz2f&syR?Z3{#sJc zt|S{v{Dvp<=6DJ4B#(SLfav^K4*u{eLF0QEQCvjX4ZwB{s~0WBuTj66BNsPNMt`23 zm_WoJb6_NPpL8eYN(@JTdI9f&t@s4~Ah!Oi2!Ksf-1TXK996YGl@L1EnN3f55VSp0 zKgP@1ir6Q6^K)r6AEuSuf1{hiv@4Dh2@;6}iSKCS6QwMhwvJs1XPFhz_&@YOaUX`f zGvA4KcKZYZ!JnSCM-0rp37gg66aYwYwF9W(w_5<`NXst)o@U}ONxh5{kNf;L_Q2Vz zXQ%+k+s?cVCIoGGg`)smr>YjPaKzT=#Q9t^1?I!)4t?sHFFsv_F8rZW@nqZu#9ZLgy-ZwkjjEgtEQczyZLa~HTQxjMn zJQ|ry#@HFJlaQ~~+iA=;0B!zZ-mKRv8~Y!;c{ratRVpXhtWdCI?^#l|gfn4uB;Ph+ zpFkiGbSB!JO1Q&M-z;QHv4Y&LE96&#S>sKlGU42z(3JXydmY}|? zCQwDWk(h2*Gu=g2d84=;Yv>rV>r({7dfAYps%Cpy3EMkU1fZj^v8F44LnZn75<*{% zCVKT;{OeM9dvOd2_1E88wGw4X6^02C!#0n=2&N7MTmuM=h#(@+1D)D@@+G0X8Xe8* zx&G9pyv^d61WExs0*TNKA|Nz^h=@Qubc#_bOQ>p?Ona6O7QV_JlVH~G+{yZ26ZR}$ zMtqju5R}SvKG>3qZ)7|>H-;iD{6E&ke#y1pv5m^(#J;qWgC@bO*|v?1Gi^AuGL)4K zi>4N}Qc3QfXqNA}f_s23uEy*W2n2#oMu%-zEKPZnf2zUU?Qcx>1oAX!0J@lAYAD#F zyY2_F;t~abkMlVGGbo9hbk{iyC@H7_ZoSN_J6_g}=^|yqm}9I6=#4p^csK*9Gbr%Fh5$Yj1SalG;p0Q566`T)WB8cP{E{24YSW@YQVZMmrN8Hncyba3m9aCVArk z;P4b{cRr=>mk+h1c*a{Ke_u&(utT%@+=t2WNn8atq{!rQyzAQ?o?6QtwQ`197Bl0m zWWKKqCfI!#a-T$2aRaGLj@;Y0?#gdIW7lOrUjBRu6WjscR|rp?!;XYgge@7RmwWQ% zNS^UC2bQqt`DEsQlu0Hqu?gGG?|GZg)#F*WYY9)f0Dc>|`Rg>+?f9JY!SfkhFQ+Vj zl&JlyncTB=MX>^bK=7dGn214H0-I9f(RLZn3jx8jYG=Q_7lEUmKtAd*bg5Tg#y=K{ zhx2TvG!!-7%H`d7u!S@@ z0y(N`hW4`IgTHtZ*vF0>RW*wfJFsH!exc4KEh&klq$Cc+tt0%Ut>pF%BVzj9S7WWZ z2xXBPt-C93K%uIr118s^E>cpY*5dB!1{Bg7wdc~4sT~xEzdo-&m_cLgQJ>2)C{&fu z!(cayZP(^bw9MtlQ{(TggUyWx$dMXEgI?dev!*L(GnfZAsY%7Un)4^E44qw+X zl$E5?)7rV!GrHKAk+*CJ8AUfqFStp?J#k)_u4eRevck7V>$d0hbGG8dJRd-JhQZKx zE^_EnMXT+5;3yCA_f?1VZ#||(5w~nI`rV49XV|vpHFlm>Qwv~YgAL%(&S^`}Y-7!9 zJ2|bcMW?p4TCY)}tOd(Ta*~qBsc%(P*g>w6Yd{l$hGrD?VR2zUXDhs1EID`WCi^dz5%Q>0Q^PwSK8x5LKO67LZ;AZN zYkaNwjcx`$(&TUcyYz3c2hTvsgh3Y^Q z@~GBmt)luSpw8m#Syd;^?N8hP12t4vH`P~5ov0rW2m}u??Q#sXIUn-(v&Ya{ z|CNQ4#^0Sn=;4Wn1)Qz;j$hO-;ZuLT)fSxB-MKkR>uU;H!1W?Z8#P+t>@@8{s7{5XcdBmnwHg*~uCK5j1 zkArXRVDDKu5q{=C7MW?KSWKEiNPP&w+S!(NS5ahTl2&TLq$wfwkqK*@ZCk5VN-s|! z&!4APgf-m6cL2TV-5);BzlxTD=)X1Bl;q;Wq~0Aikw732+;`euW1v0F)`SIQGl*xO z*vN!Nw_ih%^>GE_`7$-Dej8UAhqK;8izQ>-N9cY~)!Cdpb(o}6=`>{Dvo54jpx=p5 z#y6Soq6Yk22kP6h^ULm-k`u>gc{N}k!RS_=VQ{swmaxxq3G%e3?iL)+QG+;hwjHO^4=?b9fxXJw`(5 zR#M9~V7-iK!*mBCX@B~N$OHdFO^>^n7`C8Io%4zj2A>qPd?8bOF#DPO(&KB?%_>So#JIYi2XJTRG?B-{qWN6f2)-S($7j+j_g;7yLXUcEzxMjW=&C z^oKL=uzqhfgBAxfs(F-ItQ&XSoy;VZ-^-B~Oyfh7WQJyal^>{Q=GYz@F z#_(-XE~ee0d41Mm{F;c`Yh40RNJnB?n@nnU45{TBth%jW)y!yu>V1hDIOAbwL2=Pm z67#=6$)f~}OyO@MTb?zZKCs(e@BO!4WZoC~P0CM=&thu)-3KoJUNPc7pY6v}{T<0s z=}s{$)M%M2b0u<;TZ?V%thi5~%kv(k?B2SYEX)a*6G^B`DjS{)L^g2&-+0Ynl7YO# z<6*oKV9$lE|Aj&k#+Hg;!h-JBIcE9-hSnWpL%4#l_zW-)U`}KxE~y)ME>OnA1>fK` zW755YSTMAXV;jOzgvFC#%vkeLEPDS9rkQ`u>Tm@LML1C@)=0V;6E;pG+W_2W@%one z^iEw*xI#hr`c$05HWC{q!UY0>;NiyPcC%+6cLdd_3M;5K?Mio7J6g1PtGXOzMGaUw zBI#y4^sajfqmidBwt)14o6P$nPyYzz))L@h$Bq!sX43)qxofj}S-2=oZYKp+qZ1OkDc Z{|5j9&vfBya3lZ#002ovPDHLkV1krfxgr1n diff --git a/test/visual-images/Departure_with-stop/with-stop/edge.png b/test/visual-images/Departure_with-stop/with-stop/edge.png index becc4db29c3f9d14640294729033e92442097d40..68c11d08063b67a4ea87a0be5b73d72296e9a011 100644 GIT binary patch literal 4093 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 literal 4208 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 W>ii+p!EpVP0MJm;eO#$z6Z{_p#smET diff --git a/test/visual-images/EmptyFavouriteLocationSlot_normal/normal/edge.png b/test/visual-images/EmptyFavouriteLocationSlot_normal/normal/edge.png index 434f49bb8bd2c23cff32a68ffc7eb02e258461d9..89e2d662940d222152b4f51280f1de48c0b75d99 100644 GIT binary patch literal 3518 zcmb_fWn2?n7oUKjgn|$40Ns#Ka+6RI1V^calpx`V0ZK}4445b}LU14rLx}-Wj&AAE zJO&*D9Oa}2((%ss`}^(va?icz+&cL?|42i9Z4OpJRsaCNp{oNk0st6z>2r;9%=D3s zly#ZT57ULIn;Fszbq$?t30BoBVV8UqUIZ0bo*iZJ*{z)q zm|Cm98*n|}fHYEJ+Tc`GG9i<1^u)60#`T8!ktOLOke4~vV@^%jx$~4Wm%>vYK@uYB z>Y)AyB++-y8kbU-pusjv8>IfDwe`b>xv9FW{b_QhJdmXOd$J}AZuu_74GaQ-60%k{ z4b9DUI=5H&!{u##-x3ImFf{s3XP)@%K!3*PHu@e&aIy1yc#DCJjc_6l&p&3PJg#il zO|V#Ou7HQ5nC7*-P>ql0OQ=!f)f!<~td1Zp04g4s`o=}0D3ZQ>3XR(Zz#IbIwzN@h zPAMF3r}rA{L(xK0;p&Lyi0fGqo%xI2D>1-Ef~pg?n`r!*Q`fj`joq8vz%usT-M*f~ zZnNXVs3k}--I5(oo>3>P%*XzcoU*Zg6!PTEeON4hMjiI8{{%abRXWutEvxi>4A)qF zuweLAc2P7dt_zst!45ekKAjokN&QTW(m8lce*i49x<2<>oVuS|#q!FQ*743&Tpj(x zcIBa-O665KeK0r9Cm((_UQE?}b?%cXN2TS3YN$^(l2$Ju8f-IQ&6mWnU!S1kzS|;l z#L5TqGU1kjeS7r<+Vw~Frrn(jgK{4kW|L5z04vpsS?uw(OP;3zUu2@O-6@jh*xV4r z7muqzU+kU2)m`y2rSGe!F08zugegVL`{4#~1g{+-exap(of?nD#^7Ivb&Kvs z@4j)UB`vXp+ifz%1@Y(hjTDDrV`Bfx96Nz09{!;-#HkZ`Eh0?AMH=StgZ?8iqW`X+ zeO`cVXL79^GRLe{1E!@-Zj^*X4m0N(h ze}BRa0>`RBAjTCVY`5s*dQ|JH1)horesY&hLwkQ!r5d(XVK z?D`y`u9M=(ew;dokM27&HtD`uBz>Q(H6cjc|C8UUKBPA=Z24Ew8ELvclH+S3|L|67 zxe7leLtGEA|t~f8xQkoe=A@g!^t5)#gmUAaJp6}_CUNUuvvpfaG+x$IIcZZJ` z$DdzxRi=G*EzRiB=-ydAE?wEbzOs5=+T+F+<$1aA?tX){p#{9$CssD^I7%nrZv->? zXFcm*xn`rX2CkW$_{MS1J0hsVPo}-)r`P81s>HMsPMrMLyAGh|EiU!Qxq}CT=<-PP& z3=4#wWy9T6$dP*!AuIdynM`^wT5sCb^%tQ;Tt7MUNSzpU#7WQS!rppOh?$3t1 zBR+z6t#@ti)|~pO`4Vl@ZdQ7Ze)nxOSۼ%9xtY=)?ded~Z^Ek)+BT^OAE_70m1KCUn9mZv)WsTO7cC?DBPo(T>#69@yl zC$~h#5l)$iWqq&?Lk7h%->$3wGE#Q$TJ)E%*A?7yhMY<@4PXNkma%-d%&Od^)BqH8 z0nv3tDGb$I9W&{8!QGLC;pm`5@dSkdPP&v=*1uZ0@8hIUO)GPmun^FhmF%7^-KvQ7 zg3Al4j*$%1R&4FH84Rj>=Ao?n)U9Yq0VE~jb>nBkTbA9v~wt zu|4;9r^PjUZOn2hrinvCGU*Qz`JBgwgwnHnf(129%9cL_44McR_T-_^m-~J_62{{V z^f0~UZN;d*Ax5-YwIwr;F=TJ@ta05zzpDx$6cvnMi*s7oB0G^#&TismTC+dmU4_l9 zdS2tcr(uCk^f(~pCjZIu*}TO}&a`YT_hejhf4jA@^JeOHMee%8`OpiV>)z_Zt7qgS zp!P?H6D>~yDyZqTbDig?LM;fxk?Fq7G7D|_QVA-iA$k1=N6N3|O4Jdf+R$obx!;P9 zzGA}9dNks+7I5kJj=%S@hahrsB%#g@^DbS00IYusqkhla^fl9dNgw6f!jS0E9Z%#qOqQzXTRsyq&nn{Lk)l;6V84`(u3ffICw8zM zCYS}AFWpN@&Mzyqdz=?3aqt{Gtewot~n?1 z$)WEi8*6#DLhC2D`S4_LvB%0{rr6$zg?M?1|3%}OwUC5pXG<>)^0~HWf;jI2GgM;S zXj!UO;_e1{HdFeH+0Z5t*}|)2?FrhI?aw{Fh)&tUhYfQgZWuyGPQhHMhEE$Mz1aPN zCpstZb?T0rRQb;NFTJ!Dm^D9gH9lSCoDK}WQkOE{;FKhv&)K4>>&t~vLcl$26>G!* zN|;+7f(v4=dYFk`}?iNDv5U%k*}C!MX&(3#tNk~DM!b* zBB-X)#T5L*hw&~jyT@t%KuYtH-{U4bKD7x!u-fG-Ay9&^NQBF=>7Pmpg4^o7N%BUV zI6z)J`LE-g=5-RA~YW@TWDOlcPqrCM&9vzqUps zbClxrvoN}Bul9>@%G$?( zmt(XBEt%=L*@2!}f|pVqQMt@7E*Jk5BiuHYYS&i%>R`Lhdd?c9~xB8~i>e+{^V*&lb=B6B3=O z*)uF8@*{k&5;JKYI$YHRklIFYeA=BF+__KwV#}i8I>y_Tov_LRY@wXo(4T8{(Vxdt zqw8|uDcMaIaJJe$wIlXfLNiJY<3rFxz#~VVI5!bZ3RM@%3(~&UQFO<(Wj5B^V1BKF z#c8{{>-LP5(`G-ZWGYzy+ScG;j-yk`AHCK7XJ0$#jgUp-jvGL2#bkV{ChFnEEX?9k zF@ZA~K|+;W(_iA(e&S^#-$#8~y9MVzxkW`9s4ezABaqu9rhuE@%G&>SOYv zFRHrF#SpHLhy0M$<6^VOJ;Y-aIp#seGq-6{(4VYtrJP|UN8=I|? zGLDDaCD!BE%#+UAJn}LmqT67O(uSXPbf1N?3nAJ#wSJV7BnaR;|1UgHV&o*C*7j z{k%qR)8{nzIGU79FGJZ-ZY5@kfGj+rd4p(Gh`{Zy+K~cKgF7=nIrqaom)UnX`vzK< z?iw}luLfWCen4}NvA46>yJP3T4Xh&!&uD6w>8ckdw+_VH#|BhL3<{l8VCh_g5uHN? zBWW((s)LEl{wy_2+poX9UZ@w&@;x-lPptVHw-DY&HZKpH)!fvaVe7~gZ$Bv1xs$_j zzJ2r(u1BBVcfeqx2zqPvKZzBA^oHlH@cK(SzR-!XFysFIQ=rb4wT_jI?L705c~aY7 zh*AH!Si&s?pqk~OK^2VsDVmm+em+d2!xc@Drr%6)8QMl}><5~dnZWtGLWdPDMZ)ab eKK&Pr9AdcPnQ$&oi8FLu2GG^ihm~r;U;hWV8_%c! literal 3570 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 diff --git a/test/visual-images/StopMarkerPopup_basic/basic/edge.png b/test/visual-images/StopMarkerPopup_basic/basic/edge.png index 9dcc7d1bdadad091ef9f60d2d50d8f76750a5837..776bfe0fe6779d07591c400eee41e6495f6a7a7f 100644 GIT binary patch literal 35493 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 XNacOeKiu2Q00000NkvXXu0mjfN--GH literal 37253 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 From 69ebacc788f8981de9f33951bf22f057474d209a Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Tue, 31 Mar 2020 16:00:04 +0300 Subject: [PATCH 16/17] fix: small fixes to make getRoutePrefix more reliable --- app/component/RouteNumber.js | 2 +- app/configurations/config.hsl.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index 9734a468cc..5c0b98843b 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -235,7 +235,7 @@ RouteNumber.defaultProps = { RouteNumber.contextTypes = { intl: intlShape.isRequired, - config: PropTypes.object, + config: PropTypes.object.isRequired, }; RouteNumber.displayName = 'RouteNumber'; diff --git a/app/configurations/config.hsl.js b/app/configurations/config.hsl.js index 95da15aff4..0c2574f7b0 100644 --- a/app/configurations/config.hsl.js +++ b/app/configurations/config.hsl.js @@ -539,7 +539,7 @@ export default { /* Function that can be used to configure route names before displaying them Takes routes gtfsId as input */ getRoutePrefix: function routePrefix(routeId) { - if (!routeId) { + if (!routeId || !routeId.includes(':')) { return ''; } return routeId.split(':')[1].substring(0, 1) === '7' ? 'U' : ''; From c71db8e54c7e1addfe20fb6d6b4e28aceacf60c3 Mon Sep 17 00:00:00 2001 From: Aleksi Siitari Date: Tue, 31 Mar 2020 16:01:46 +0300 Subject: [PATCH 17/17] fix: small fixes to make getRoutePrefix more reliable --- app/component/RouteNumber.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/component/RouteNumber.js b/app/component/RouteNumber.js index 5c0b98843b..9734a468cc 100644 --- a/app/component/RouteNumber.js +++ b/app/component/RouteNumber.js @@ -235,7 +235,7 @@ RouteNumber.defaultProps = { RouteNumber.contextTypes = { intl: intlShape.isRequired, - config: PropTypes.object.isRequired, + config: PropTypes.object, }; RouteNumber.displayName = 'RouteNumber';