From 198e5e506d423f9acdd1dec26cfe0582616664c0 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Thu, 5 Nov 2020 18:26:24 -0800 Subject: [PATCH] fix: use core-utils v3 to sort routes by agency --- lib/components/viewers/route-viewer.js | 21 ++++----------------- lib/components/viewers/stop-viewer.js | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/lib/components/viewers/route-viewer.js b/lib/components/viewers/route-viewer.js index 11b0c1de3..33796bacf 100644 --- a/lib/components/viewers/route-viewer.js +++ b/lib/components/viewers/route-viewer.js @@ -10,15 +10,6 @@ import Icon from '../narrative/icon' import { setMainPanelContent, setViewedRoute } from '../../actions/ui' import { findRoutes, findRoute } from '../../actions/api' -function routeOperatorComparatorValue (transitOperators, route) { - const routeOperator = coreUtils.route.getTransitOperatorFromOtpRoute( - route, - transitOperators - ) - if (!routeOperator) return 0 - return routeOperator.order -} - /** * Determine the appropriate contrast color for text (white or black) based on * the input hex string (e.g., '#ff00ff') value. @@ -59,14 +50,10 @@ class RouteViewer extends Component { viewedRoute } = this.props const sortedRoutes = routes - ? Object.values(routes).sort(coreUtils.route.routeComparator) + ? Object.values(routes).sort( + coreUtils.route.makeRouteComparator(transitOperators) + ) : [] - const agencySortedRoutes = transitOperators.length > 0 - ? sortedRoutes.sort((a, b) => { - return routeOperatorComparatorValue(transitOperators, a) - - routeOperatorComparatorValue(transitOperators, b) - }) - : sortedRoutes return (
{/* Header Block */} @@ -92,7 +79,7 @@ class RouteViewer extends Component {
- {agencySortedRoutes + {sortedRoutes .map(route => { // Find operator based on agency_id (extracted from OTP route ID). const operator = coreUtils.route.getTransitOperatorFromOtpRoute( diff --git a/lib/components/viewers/stop-viewer.js b/lib/components/viewers/stop-viewer.js index 242c12533..302a7d094 100644 --- a/lib/components/viewers/stop-viewer.js +++ b/lib/components/viewers/stop-viewer.js @@ -250,12 +250,21 @@ class StopViewer extends Component { stopData, stopViewerArriving, stopViewerConfig, - timeFormat + timeFormat, + transitOperators } = this.props const { scheduleView, spin } = this.state const hasStopTimesAndRoutes = !!(stopData && stopData.stopTimes && stopData.stopTimes.length > 0 && stopData.routes) - // construct a lookup table mapping pattern (e.g. 'ROUTE_ID-HEADSIGN') to an array of stoptimes + // construct a lookup table mapping pattern (e.g. 'ROUTE_ID-HEADSIGN') to + // an array of stoptimes const stopTimesByPattern = getStopTimesByPattern(stopData) + const routeComparator = coreUtils.route.makeRouteComparator( + transitOperators + ) + const patternComparator = (patternA, patternB) => routeComparator( + patternA.route, + patternB.route + ) return (
{/* Header Block */} @@ -268,7 +277,7 @@ class StopViewer extends Component { ? <>
{Object.values(stopTimesByPattern) - .sort((a, b) => coreUtils.route.routeComparator(a.route, b.route)) + .sort(patternComparator) .map(patternTimes => { // Only add pattern row if route is found. // FIXME: there is currently a bug with the alernative transit index @@ -344,7 +353,8 @@ const mapStateToProps = (state, ownProps) => { stopData: state.otp.transitIndex.stops[state.otp.ui.viewedStop.stopId], stopViewerArriving: state.otp.config.language.stopViewerArriving, stopViewerConfig, - timeFormat: getTimeFormat(state.otp.config) + timeFormat: getTimeFormat(state.otp.config), + transitOperators: state.otp.config.transitOperators } }