From 95909c3e83c8d17f800b3252d8190ec6b9a063c0 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 11 Mar 2024 16:35:05 -0400 Subject: [PATCH 01/43] refactor(StopCardHeader): Extract stop card header component --- .../viewers/nearby/stop-card-header.tsx | 128 ++++++++++++++++++ lib/components/viewers/nearby/stop.tsx | 117 +++------------- 2 files changed, 148 insertions(+), 97 deletions(-) create mode 100644 lib/components/viewers/nearby/stop-card-header.tsx diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx new file mode 100644 index 000000000..1fae674b3 --- /dev/null +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -0,0 +1,128 @@ +import { connect } from 'react-redux' +import { FormattedMessage, useIntl } from 'react-intl' +import { MapPin } from '@styled-icons/fa-solid' +import { Place, TransitOperator } from '@opentripplanner/types' +import React, { ComponentType } from 'react' + +import { AppReduxState } from '../../../util/state-types' +import { IconWithText } from '../../util/styledIcon' +import { Pattern, StopTime } from '../../util/types' +import Link from '../../util/link' +import OperatorLogo from '../../util/operator-logo' +import Strong from '../../util/strong-text' + +import { CardBody, CardHeader, CardTitle as NearbyCardTitle } from './styled' + +type PatternStopTime = { + pattern: Pattern + stoptimes: StopTime[] +} + +type StopData = Place & { + code: string + gtfsId: string + stoptimesForPatterns: PatternStopTime[] +} + +type Props = { + CardTitle: string + actionIcon: ComponentType + actionParams?: Record + actionText: JSX.Element + actionUrl: string + fromToSlot: JSX.Element + stopData: StopData + transitOperators?: TransitOperator[] +} + +const Operator = ({ operator }: { operator?: TransitOperator }) => { + const intl = useIntl() + return operator && operator.logo ? ( + + ) : ( + + ) +} + +const StopCardHeader = ({ + actionIcon, + actionParams, + actionText, + actionUrl, + CardTitle, + fromToSlot, + stopData, + transitOperators +}: Props): JSX.Element => { + const agencies = stopData.stoptimesForPatterns?.reduce>( + // @ts-expect-error The agency type is not yet compatible with OTP2 + (prev, cur) => prev.add(cur.pattern.route.agency.gtfsId), + new Set() + ) + + return ( + <> + + + + {transitOperators + ?.filter((to) => Array.from(agencies).includes(to.agencyId)) + // Second pass to remove duplicates based on name + .filter( + (to, index, arr) => + index === arr.findIndex((t) => t?.name === to?.name) + ) + .map((to) => ( + + ))} + + } + > + {stopData.name} + + + + +
+ + + {actionText} + +
+ {fromToSlot} +
+ + ) +} + +const mapStateToProps = (state: AppReduxState) => { + const { config } = state.otp + return { + transitOperators: config.transitOperators + } +} + +export default connect(mapStateToProps)(StopCardHeader) diff --git a/lib/components/viewers/nearby/stop.tsx b/lib/components/viewers/nearby/stop.tsx index 792830826..d64a141d9 100644 --- a/lib/components/viewers/nearby/stop.tsx +++ b/lib/components/viewers/nearby/stop.tsx @@ -1,29 +1,20 @@ -import { Calendar, MapPin } from '@styled-icons/fa-solid' +import { Calendar } from '@styled-icons/fa-solid' import { connect } from 'react-redux' -import { FormattedMessage, useIntl } from 'react-intl' -import { Place, TransitOperator } from '@opentripplanner/types' +import { FormattedMessage } from 'react-intl' +import { Place } from '@opentripplanner/types' import coreUtils from '@opentripplanner/core-utils' import React, { useCallback } from 'react' import * as uiActions from '../../../actions/ui' import { AppReduxState } from '../../../util/state-types' import { extractHeadsignFromPattern } from '../../../util/viewer' -import { IconWithText } from '../../util/styledIcon' import { NearbyViewConfig } from '../../../util/config-types' import { Pattern, StopTime } from '../../util/types' -import OperatorLogo from '../../util/operator-logo' import PatternRow from '../pattern-row' -import Strong from '../../util/strong-text' import TimezoneWarning from '../timezone-warning' -import { - Card, - CardBody, - CardHeader, - CardTitle, - PatternRowContainer, - StyledAlert -} from './styled' +import { Card, PatternRowContainer, StyledAlert } from './styled' +import StopCardHeader from './stop-card-header' const { getUserTimezone } = coreUtils.time @@ -46,29 +37,7 @@ type Props = { homeTimezone: string nearbyViewConfig?: NearbyViewConfig setHoveredStop: (stopId?: string) => void - setViewedStop: (stop: any, nearby: string) => void - showOperatorLogo: boolean stopData: StopData - transitOperators?: TransitOperator[] -} - -const Operator = ({ operator }: { operator?: TransitOperator }) => { - const intl = useIntl() - return operator && operator.logo ? ( - - ) : ( - - ) } const Stop = ({ @@ -76,16 +45,8 @@ const Stop = ({ homeTimezone, nearbyViewConfig, setHoveredStop, - setViewedStop, - stopData, - transitOperators + stopData }: Props): JSX.Element => { - const agencies = stopData.stoptimesForPatterns?.reduce>( - // @ts-expect-error The agency type is not yet compatible with OTP2 - (prev, cur) => prev.add(cur.pattern.route.agency.gtfsId), - new Set() - ) - const patternRows = stopData.stoptimesForPatterns ?.reduce((acc, cur) => { const currentHeadsign = extractHeadsignFromPattern(cur.pattern) @@ -144,49 +105,15 @@ const Stop = ({ return ( - - - - {transitOperators - ?.filter((to) => Array.from(agencies).includes(to.agencyId)) - // Second pass to remove duplicates based on name - .filter( - (to, index, arr) => - index === arr.findIndex((t) => t?.name === to?.name) - ) - .map((to) => ( - - ))} - - } - > - {stopData.name} - - - - -
- - -
- {fromToSlot} -
+ + } + actionUrl={`/schedule/${stopData.gtfsId}`} + fromToSlot={fromToSlot} + stopData={stopData} + />
{timezoneWarning}
{patternRows} @@ -195,20 +122,16 @@ const Stop = ({ ) } -const mapDispatchToProps = { - setHoveredStop: uiActions.setHoveredStop, - setMainPanelContent: uiActions.setMainPanelContent, - setViewedStop: uiActions.setViewedStop, - toggleAutoRefresh: uiActions.toggleAutoRefresh -} - const mapStateToProps = (state: AppReduxState) => { const { config } = state.otp return { homeTimezone: config.homeTimezone, - nearbyViewConfig: config?.nearbyView, - transitOperators: config.transitOperators + nearbyViewConfig: config?.nearbyView } } +const mapDispatchToProps = { + setHoveredStop: uiActions.setHoveredStop +} + export default connect(mapStateToProps, mapDispatchToProps)(Stop) From 8bb8bb1896989a0c8a7df55939cc3f0bc3de86cb Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 11 Mar 2024 16:37:48 -0400 Subject: [PATCH 02/43] refactor(StopScheduleViewer): Reuse new StopCardHeader component --- lib/actions/apiV2.js | 3 ++ .../viewers/stop-schedule-viewer.tsx | 49 ++++++------------- 2 files changed, 19 insertions(+), 33 deletions(-) diff --git a/lib/actions/apiV2.js b/lib/actions/apiV2.js index 2c6a694d7..f51b14333 100644 --- a/lib/actions/apiV2.js +++ b/lib/actions/apiV2.js @@ -532,6 +532,9 @@ export const findStopTimesForStop = (params) => headsign id: code route { + agency { + gtfsId + } gtfsId } stops { diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index 5f80784d6..f4fee8099 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -22,13 +22,14 @@ import { SetLocationHandler, StopData } from '../util/types' import { stopIsFlex } from '../../util/viewer' import { TransitOperatorConfig } from '../../util/config-types' import Link from '../util/link' -import OperatorLogo from '../util/operator-logo' import PageTitle from '../util/page-title' import ServiceTimeRangeRetriever from '../util/service-time-range-retriever' import Strong from '../util/strong-text' import withMap from '../map/with-map' +import { Card } from './nearby/styled' import FavoriteStopToggle from './favorite-stop-toggle' +import StopCardHeader from './nearby/stop-card-header' import StopScheduleTable from './stop-schedule-table' import TimezoneWarning from './timezone-warning' @@ -170,11 +171,7 @@ class StopScheduleViewer extends Component { } _renderHeader = (agencyCount: number) => { - const { hideBackButton, intl, stopData } = this.props - - // We can use the first route, as this operator will only be used if there is only one operator - const stationOperator = this.getOperator() - + const { hideBackButton, stopData, stopId } = this.props return (
{/* Back button */} @@ -191,33 +188,19 @@ class StopScheduleViewer extends Component { {/* Header Text */}
{stopData?.name ? ( -

- {agencyCount <= 1 && stationOperator && ( - /* Span with agency classname allows optional contrast/customization in user - config for logos with poor contrast. Class name is hyphenated agency name - e.g. "sound-transit" */ - - - - )} - {stopData.name} -

+ + + } + actionUrl={`/nearby/${stopData.lat},${stopData.lon}`} + CardTitle="h1" + stopData={stopData} + /> + ) : (

From e8b335d95f441e6de7f82eb955e60f1747fc0bdb Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:08:28 -0400 Subject: [PATCH 03/43] refactor(StopScheduleViewer): Adjust some styles --- lib/components/viewers/nearby/stop-card-header.tsx | 1 + lib/components/viewers/stop-schedule-viewer.tsx | 14 ++++++++++++-- lib/components/viewers/viewers.css | 1 - 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index 1fae674b3..a071c6970 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -89,6 +89,7 @@ const StopCardHeader = ({ ))} } + styleProps={{}} > {stopData.name} diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index f4fee8099..a3d5ee523 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -85,6 +85,16 @@ const StyledAlert = styled(Alert)` text-align: center; ` +const HeaderCard = styled(Card)` + background: none; + color: inherit; + margin: 5px 0; + width: 100%; + &:hover { + box-shadow: none; + } +` + class StopScheduleViewer extends Component { constructor(props: Props) { super(props) @@ -188,7 +198,7 @@ class StopScheduleViewer extends Component { {/* Header Text */}
{stopData?.name ? ( - + { CardTitle="h1" stopData={stopData} /> - + ) : (

diff --git a/lib/components/viewers/viewers.css b/lib/components/viewers/viewers.css index d1dae3e5b..02c2cd752 100644 --- a/lib/components/viewers/viewers.css +++ b/lib/components/viewers/viewers.css @@ -1,7 +1,6 @@ /* shared stop/trip viewer styles */ .otp .route-viewer-header, -.otp .stop-viewer-header, .otp .trip-viewer-header { padding: 12px; margin: 5px; From 4cad9129304def66e6276f67bc2e9d721a08921e Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:26:02 -0400 Subject: [PATCH 04/43] refactor(Stop): Remove unused code. --- lib/components/viewers/nearby/stop.tsx | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/lib/components/viewers/nearby/stop.tsx b/lib/components/viewers/nearby/stop.tsx index d64a141d9..f74421f64 100644 --- a/lib/components/viewers/nearby/stop.tsx +++ b/lib/components/viewers/nearby/stop.tsx @@ -3,9 +3,8 @@ import { connect } from 'react-redux' import { FormattedMessage } from 'react-intl' import { Place } from '@opentripplanner/types' import coreUtils from '@opentripplanner/core-utils' -import React, { useCallback } from 'react' +import React from 'react' -import * as uiActions from '../../../actions/ui' import { AppReduxState } from '../../../util/state-types' import { extractHeadsignFromPattern } from '../../../util/viewer' import { NearbyViewConfig } from '../../../util/config-types' @@ -36,7 +35,6 @@ type Props = { fromToSlot: JSX.Element homeTimezone: string nearbyViewConfig?: NearbyViewConfig - setHoveredStop: (stopId?: string) => void stopData: StopData } @@ -44,7 +42,6 @@ const Stop = ({ fromToSlot, homeTimezone, nearbyViewConfig, - setHoveredStop, stopData }: Props): JSX.Element => { const patternRows = stopData.stoptimesForPatterns @@ -93,18 +90,10 @@ const Stop = ({ ) - const onMouseEnter = useCallback(() => { - setHoveredStop(stopData.gtfsId) - }, [setHoveredStop, stopData.gtfsId]) - - const onMouseLeave = useCallback(() => { - setHoveredStop(undefined) - }, [setHoveredStop]) - if (nearbyViewConfig?.hideEmptyStops && patternRows.length === 0) return <> return ( - + { } } -const mapDispatchToProps = { - setHoveredStop: uiActions.setHoveredStop -} - -export default connect(mapStateToProps, mapDispatchToProps)(Stop) +export default connect(mapStateToProps)(Stop) From bac8366e27c3c6fb6e19a8daccc47558c2c0fc5e Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:29:54 -0400 Subject: [PATCH 05/43] refactor(StopScheduleViewer): Remove redundant UI --- .../viewers/stop-schedule-viewer.tsx | 34 ++----------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index a3d5ee523..f103a129c 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -21,10 +21,8 @@ import { isBlank, navigateBack } from '../../util/ui' import { SetLocationHandler, StopData } from '../util/types' import { stopIsFlex } from '../../util/viewer' import { TransitOperatorConfig } from '../../util/config-types' -import Link from '../util/link' import PageTitle from '../util/page-title' import ServiceTimeRangeRetriever from '../util/service-time-range-retriever' -import Strong from '../util/strong-text' import withMap from '../map/with-map' import { Card } from './nearby/styled' @@ -130,6 +128,7 @@ class StopScheduleViewer extends Component { } } + // TODO: refactor getOperator = () => { const { stopData, transitOperators } = this.props @@ -227,22 +226,10 @@ class StopScheduleViewer extends Component { * Plan trip from/to here buttons, plus the schedule/next arrivals toggle. */ _renderControls = () => { - const { calendarMax, calendarMin, homeTimezone, intl, stopData, stopId } = - this.props + const { calendarMax, calendarMin, homeTimezone, intl } = this.props const { date } = this.state const inHomeTimezone = homeTimezone && homeTimezone === getUserTimezone() - // Rewrite stop ID to not include Agency prefix, if present - // TODO: make this functionality configurable? - let displayedStopId - if (stopData) { - displayedStopId = - stopData.code || - (stopData.gtfsId?.includes(':') - ? stopData.gtfsId.split(':')[1] - : stopData.gtfsId) - } - let warning if (!inHomeTimezone && this._isDateWithinRange(date)) { // Display a banner about the departure timezone if user's timezone is not the configured 'homeTimezone' @@ -274,10 +261,6 @@ class StopScheduleViewer extends Component { style={{ marginBottom: '10px' }} >
- - {stopData ? ( - - {/* FIXME: What icon should we use? */} - - - - - ) : null}
Date: Tue, 12 Mar 2024 18:05:42 -0400 Subject: [PATCH 06/43] refactor(StopCardHeader): Move zoom functionality from StopScheduleViewer. --- .../viewers/nearby/stop-card-header.tsx | 22 ++++++++++++++++++- .../viewers/stop-schedule-viewer.tsx | 15 ++----------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index a071c6970..b4cb37d44 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -2,11 +2,13 @@ import { connect } from 'react-redux' import { FormattedMessage, useIntl } from 'react-intl' import { MapPin } from '@styled-icons/fa-solid' import { Place, TransitOperator } from '@opentripplanner/types' +import { Search } from '@styled-icons/fa-solid/Search' import React, { ComponentType } from 'react' import { AppReduxState } from '../../../util/state-types' -import { IconWithText } from '../../util/styledIcon' +import { Icon, IconWithText } from '../../util/styledIcon' import { Pattern, StopTime } from '../../util/types' +import InvisibleA11yLabel from '../../util/invisible-a11y-label' import Link from '../../util/link' import OperatorLogo from '../../util/operator-logo' import Strong from '../../util/strong-text' @@ -31,6 +33,7 @@ type Props = { actionText: JSX.Element actionUrl: string fromToSlot: JSX.Element + onZoomClick: () => void stopData: StopData transitOperators?: TransitOperator[] } @@ -61,14 +64,21 @@ const StopCardHeader = ({ actionUrl, CardTitle, fromToSlot, + onZoomClick, stopData, transitOperators }: Props): JSX.Element => { + const intl = useIntl() const agencies = stopData.stoptimesForPatterns?.reduce>( // @ts-expect-error The agency type is not yet compatible with OTP2 (prev, cur) => prev.add(cur.pattern.route.agency.gtfsId), new Set() ) + const zoomButtonText = onZoomClick + ? intl.formatMessage({ + id: 'components.StopViewer.zoomToStop' + }) + : null return ( <> @@ -104,6 +114,16 @@ const StopCardHeader = ({ strong: Strong }} /> + {onZoomClick ? ( + + ) : null} { } actionUrl={`/nearby/${stopData.lat},${stopData.lon}`} CardTitle="h1" + onZoomClick={this._zoomToStop} stopData={stopData} /> @@ -260,17 +260,6 @@ class StopScheduleViewer extends Component { role="group" style={{ marginBottom: '10px' }} > -
- -
Date: Wed, 13 Mar 2024 10:13:16 -0400 Subject: [PATCH 07/43] refactor(NearbyView): Extract FromToPicker component. --- .../viewers/nearby/from-to-picker.tsx | 43 ++++++++++ lib/components/viewers/nearby/nearby-view.tsx | 38 +-------- .../viewers/stop-schedule-viewer.tsx | 81 ++++++++++--------- lib/components/viewers/viewers.css | 25 ------ 4 files changed, 91 insertions(+), 96 deletions(-) create mode 100644 lib/components/viewers/nearby/from-to-picker.tsx diff --git a/lib/components/viewers/nearby/from-to-picker.tsx b/lib/components/viewers/nearby/from-to-picker.tsx new file mode 100644 index 000000000..bb7fdd999 --- /dev/null +++ b/lib/components/viewers/nearby/from-to-picker.tsx @@ -0,0 +1,43 @@ +import { connect } from 'react-redux' +import { Place } from '@opentripplanner/types' +import FromToLocationPicker from '@opentripplanner/from-to-location-picker' +import React, { useCallback, useMemo } from 'react' + +import * as mapActions from '../../../actions/map' +import { SetLocationHandler } from '../../util/types' + +interface Props { + className?: string + place: Place + setLocation: SetLocationHandler +} + +const FromToPicker = ({ className, place, setLocation }: Props) => { + const location = useMemo( + () => ({ + lat: place.lat ?? 0, + lon: place.lon ?? 0, + name: place.name + }), + [place] + ) + return ( + + { + setLocation({ location, locationType: 'from', reverseGeocode: false }) + }, [location, setLocation])} + onToClick={useCallback(() => { + setLocation({ location, locationType: 'to', reverseGeocode: false }) + }, [location, setLocation])} + /> + + ) +} + +const mapDispatchToProps = { + setLocation: mapActions.setLocation +} + +export default connect(null, mapDispatchToProps)(FromToPicker) diff --git a/lib/components/viewers/nearby/nearby-view.tsx b/lib/components/viewers/nearby/nearby-view.tsx index 41b68dbca..8c60116cd 100644 --- a/lib/components/viewers/nearby/nearby-view.tsx +++ b/lib/components/viewers/nearby/nearby-view.tsx @@ -1,9 +1,8 @@ import { connect } from 'react-redux' import { FormattedMessage, useIntl } from 'react-intl' -import { Location, Stop as StopType } from '@opentripplanner/types' +import { Location } from '@opentripplanner/types' import { MapRef, useMap } from 'react-map-gl' -import FromToLocationPicker from '@opentripplanner/from-to-location-picker' -import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' +import React, { useCallback, useEffect, useRef, useState } from 'react' import * as apiActions from '../../../actions/api' import * as mapActions from '../../../actions/map' @@ -21,6 +20,7 @@ import { NearbySidebarContainer, Scrollable } from './styled' +import FromToPicker from './from-to-picker' import RentalStation from './rental-station' import Stop from './stop' import Vehicle from './vehicle-rent' @@ -45,38 +45,8 @@ type Props = { zoomToPlace: (map: MapRef, stopData: Location) => void } -const FromToPicker = ({ - setLocation, - stopData -}: { - setLocation: SetLocationHandler - stopData: StopType -}) => { - const location = useMemo( - () => ({ - lat: stopData.lat ?? 0, - lon: stopData.lon ?? 0, - name: stopData.name - }), - [stopData] - ) - return ( - - { - setLocation({ location, locationType: 'from', reverseGeocode: false }) - }, [location, setLocation])} - onToClick={useCallback(() => { - setLocation({ location, locationType: 'to', reverseGeocode: false }) - }, [location, setLocation])} - /> - - ) -} - const getNearbyItem = (place: any, setLocation: SetLocationHandler) => { - const fromTo = + const fromTo = switch (place.__typename) { case 'RentalVehicle': diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index bab99c18f..0a288de30 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -8,7 +8,6 @@ import { MagnifyingGlass } from '@styled-icons/fa-solid/MagnifyingGlass' import { MapRef } from 'react-map-gl' import { utcToZonedTime } from 'date-fns-tz' import coreUtils from '@opentripplanner/core-utils' -import FromToLocationPicker from '@opentripplanner/from-to-location-picker' import React, { Component, FormEvent } from 'react' import styled from 'styled-components' @@ -17,15 +16,16 @@ import * as mapActions from '../../actions/map' import { AppReduxState } from '../../util/state-types' import { IconWithText } from '../util/styledIcon' import { isBlank, navigateBack } from '../../util/ui' -import { SetLocationHandler, StopData } from '../util/types' +import { StopData } from '../util/types' import { stopIsFlex } from '../../util/viewer' import { TransitOperatorConfig } from '../../util/config-types' import PageTitle from '../util/page-title' import ServiceTimeRangeRetriever from '../util/service-time-range-retriever' import withMap from '../map/with-map' -import { Card } from './nearby/styled' +import { Card, CardBody } from './nearby/styled' import FavoriteStopToggle from './favorite-stop-toggle' +import FromToPicker from './nearby/from-to-picker' import StopCardHeader from './nearby/stop-card-header' import StopScheduleTable from './stop-schedule-table' import TimezoneWarning from './timezone-warning' @@ -38,7 +38,6 @@ interface Props { homeTimezone: string intl: IntlShape map?: MapRef - setLocation: SetLocationHandler showBlockIds?: boolean stopData?: StopData stopId?: string @@ -85,11 +84,45 @@ const StyledAlert = styled(Alert)` const HeaderCard = styled(Card)` background: none; color: inherit; - margin: 5px 0; + margin: 5px 0 0; width: 100%; &:hover { box-shadow: none; } + + ${CardBody} { + margin: 25px 0 0; + } + + input[type='date'] { + background: inherit; + border: none; + clear: right; + cursor: pointer; + outline: none; + width: 125px; + } + /* Remove arrows on date input */ + input[type='date']::-webkit-inner-spin-button { + -webkit-appearance: none; + } + /* For Chromium browsers, remove extra space between date and the calendar icon. */ + input[type='date']::-webkit-calendar-picker-indicator { + margin: 0; + } +` + +const StyledFromToPicker = styled(FromToPicker)` + button { + color: inherit; + } + span { + border-color: currentColor; + } + svg { + color: inherit; + fill: inherit; + } ` class StopScheduleViewer extends Component { @@ -100,22 +133,6 @@ class StopScheduleViewer extends Component { _backClicked = () => navigateBack() - _setLocationFromStop = (locationType: string) => { - const { setLocation, stopData } = this.props - if (stopData) { - const location = { - lat: stopData.lat, - lon: stopData.lon, - name: stopData.name - } - setLocation({ location, locationType, reverseGeocode: false }) - } - } - - _onClickPlanTo = () => this._setLocationFromStop('to') - - _onClickPlanFrom = () => this._setLocationFromStop('from') - componentDidMount() { this._findStopTimesForDate(this.state.date) } @@ -206,6 +223,7 @@ class StopScheduleViewer extends Component { } actionUrl={`/nearby/${stopData.lat},${stopData.lon}`} CardTitle="h1" + fromToSlot={this._renderControls()} onZoomClick={this._zoomToStop} stopData={stopData} /> @@ -223,10 +241,11 @@ class StopScheduleViewer extends Component { } /** - * Plan trip from/to here buttons, plus the schedule/next arrivals toggle. + * Plan trip from/to here buttons, plus the schedule date control. */ _renderControls = () => { - const { calendarMax, calendarMin, homeTimezone, intl } = this.props + const { calendarMax, calendarMin, homeTimezone, intl, stopData } = + this.props const { date } = this.state const inHomeTimezone = homeTimezone && homeTimezone === getUserTimezone() @@ -255,18 +274,8 @@ class StopScheduleViewer extends Component { } return ( -
- - - +
+ { {stopData && (
- {this._renderControls()} {/* scrollable list of scheduled stops requires tabIndex for keyboard navigation */} @@ -384,7 +392,6 @@ const mapStateToProps = (state: AppReduxState) => { const mapDispatchToProps = { findStopTimesForStop: apiActions.findStopTimesForStop, - setLocation: mapActions.setLocation, zoomToPlace: mapActions.zoomToPlace } diff --git a/lib/components/viewers/viewers.css b/lib/components/viewers/viewers.css index 02c2cd752..72a5d12e0 100644 --- a/lib/components/viewers/viewers.css +++ b/lib/components/viewers/viewers.css @@ -40,23 +40,6 @@ animation-name: yellowfade; } -.otp .stop-viewer-body input[type="date"] { - background: inherit; - border: none; - clear: right; - cursor: pointer; - outline: none; - width: 125px; -} -/* Remove arrows on date input */ -.otp .stop-viewer-body input[type="date"]::-webkit-inner-spin-button { - -webkit-appearance: none; -} -/* For Chromium browsers, remove extra space between date and the calendar icon. */ -.otp .stop-viewer-body input[type="date"]::-webkit-calendar-picker-indicator { - margin: 0; -} - .otp .route-viewer-body, .otp .stop-viewer-body, .otp .trip-viewer-body { @@ -117,14 +100,6 @@ padding-left: 10px; } -.otp .stop-viewer .stop-viewer-controls button { - color: inherit; -} -.otp .stop-viewer .stop-viewer-controls svg { - color: inherit; - fill: inherit; -} - /* trip viewer styles */ .otp .trip-viewer .stop-time { From 19ebfb847973cfafac40cf1a4d44b021d2561175 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 10:15:49 -0400 Subject: [PATCH 08/43] improvement(Stop): Remove entityId url param when navigating away. --- lib/components/viewers/nearby/stop.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/components/viewers/nearby/stop.tsx b/lib/components/viewers/nearby/stop.tsx index f74421f64..e23789700 100644 --- a/lib/components/viewers/nearby/stop.tsx +++ b/lib/components/viewers/nearby/stop.tsx @@ -96,6 +96,8 @@ const Stop = ({ } From 6f1344d79a9e8c5d7cf6e8c8f71b9f7d5d9bfa9a Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 10:31:59 -0400 Subject: [PATCH 09/43] refactor(StopScheduleViewer): Improve styling for loading state --- .../viewers/stop-schedule-viewer.tsx | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index 0a288de30..3fd2450ff 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -23,7 +23,7 @@ import PageTitle from '../util/page-title' import ServiceTimeRangeRetriever from '../util/service-time-range-retriever' import withMap from '../map/with-map' -import { Card, CardBody } from './nearby/styled' +import { Card, CardBody, CardHeader } from './nearby/styled' import FavoriteStopToggle from './favorite-stop-toggle' import FromToPicker from './nearby/from-to-picker' import StopCardHeader from './nearby/stop-card-header' @@ -212,8 +212,8 @@ class StopScheduleViewer extends Component { {/* Header Text */}
- {stopData?.name ? ( - + + {stopData?.name ? ( { onZoomClick={this._zoomToStop} stopData={stopData} /> - - ) : ( -

- -

- )} + ) : ( + +

+ +

+
+ )} +
From 778bd99799e324fde8d64add854efbaa27e8b897 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 12:18:35 -0400 Subject: [PATCH 10/43] refactor(StopCardHeader): Support logo contrast mode. --- .../viewers/nearby/stop-card-header.tsx | 63 +++++++++---------- lib/components/viewers/nearby/styled.tsx | 6 +- .../viewers/stop-schedule-viewer.tsx | 63 +++++++++---------- lib/components/viewers/viewers.css | 6 -- 4 files changed, 63 insertions(+), 75 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index b4cb37d44..e3adf7a13 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -41,17 +41,26 @@ type Props = { const Operator = ({ operator }: { operator?: TransitOperator }) => { const intl = useIntl() return operator && operator.logo ? ( - + /* Span with agency classname allows optional contrast/customization in user + config for logos with poor contrast. Class name is hyphenated agency name + e.g. "sound-transit" */ + + + ) : ( ) @@ -83,27 +92,17 @@ const StopCardHeader = ({ return ( <> - - - {transitOperators - ?.filter((to) => Array.from(agencies).includes(to.agencyId)) - // Second pass to remove duplicates based on name - .filter( - (to, index, arr) => - index === arr.findIndex((t) => t?.name === to?.name) - ) - .map((to) => ( - - ))} - - } - styleProps={{}} - > - {stopData.name} - - + {transitOperators + ?.filter((to) => Array.from(agencies).includes(to.agencyId)) + // Second pass to remove duplicates based on name + .filter( + (to, index, arr) => + index === arr.findIndex((t) => t?.name === to?.name) + ) + .map((to) => ( + + ))} + {stopData.name}
diff --git a/lib/components/viewers/nearby/styled.tsx b/lib/components/viewers/nearby/styled.tsx index 159d787d3..5a588ea8a 100644 --- a/lib/components/viewers/nearby/styled.tsx +++ b/lib/components/viewers/nearby/styled.tsx @@ -36,10 +36,10 @@ export const Card = styled.div` ` export const CardHeader = styled.div` + align-items: center; display: flex; - flex-direction: column; - padding: 0 1.2rem; - padding-top: 1rem; + gap: 0.5ch; + padding: 1rem 1.2rem 0; ` export const CardTitle = styled.p` diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index 3fd2450ff..c4d80e6b2 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -23,7 +23,7 @@ import PageTitle from '../util/page-title' import ServiceTimeRangeRetriever from '../util/service-time-range-retriever' import withMap from '../map/with-map' -import { Card, CardBody, CardHeader } from './nearby/styled' +import { CardBody, CardHeader } from './nearby/styled' import FavoriteStopToggle from './favorite-stop-toggle' import FromToPicker from './nearby/from-to-picker' import StopCardHeader from './nearby/stop-card-header' @@ -81,14 +81,10 @@ const StyledAlert = styled(Alert)` text-align: center; ` -const HeaderCard = styled(Card)` - background: none; - color: inherit; +const HeaderCard = styled.div` + display: flex; + flex-direction: column; margin: 5px 0 0; - width: 100%; - &:hover { - box-shadow: none; - } ${CardBody} { margin: 25px 0 0; @@ -211,32 +207,31 @@ class StopScheduleViewer extends Component { )} {/* Header Text */} -
- - {stopData?.name ? ( - - } - actionUrl={`/nearby/${stopData.lat},${stopData.lon}`} - CardTitle="h1" - fromToSlot={this._renderControls()} - onZoomClick={this._zoomToStop} - stopData={stopData} - /> - ) : ( - -

- -

-
- )} -
- -
+ + {stopData?.name ? ( + + } + actionUrl={`/nearby/${stopData.lat},${stopData.lon}`} + CardTitle="h1" + fromToSlot={this._renderControls()} + onZoomClick={this._zoomToStop} + stopData={stopData} + /> + ) : ( + +

+ +

+
+ )} +
+ +
) diff --git a/lib/components/viewers/viewers.css b/lib/components/viewers/viewers.css index 72a5d12e0..31e260402 100644 --- a/lib/components/viewers/viewers.css +++ b/lib/components/viewers/viewers.css @@ -59,12 +59,6 @@ margin-right: 10px; } -.otp .stop-viewer .header-text { - display: flex; - align-items: flex-end; - gap: 1ch; -} -.otp .stop-viewer .header-text h1, .otp .trip-viewer .header-text, .otp .route-viewer .header-text { display: contents; From fd491cf40ba484c9c34de7abfa28ab40447b84f3 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 12:28:57 -0400 Subject: [PATCH 11/43] refactor(StopCardHeader): Rename some props --- lib/components/viewers/nearby/stop-card-header.tsx | 12 ++++++------ lib/components/viewers/nearby/stop.tsx | 2 +- lib/components/viewers/stop-schedule-viewer.tsx | 5 ++--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index e3adf7a13..bc9869b81 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -27,14 +27,14 @@ type StopData = Place & { } type Props = { - CardTitle: string actionIcon: ComponentType actionParams?: Record + actionPath: string actionText: JSX.Element - actionUrl: string fromToSlot: JSX.Element onZoomClick: () => void stopData: StopData + titleAs?: string transitOperators?: TransitOperator[] } @@ -69,12 +69,12 @@ const Operator = ({ operator }: { operator?: TransitOperator }) => { const StopCardHeader = ({ actionIcon, actionParams, + actionPath, actionText, - actionUrl, - CardTitle, fromToSlot, onZoomClick, stopData, + titleAs, transitOperators }: Props): JSX.Element => { const intl = useIntl() @@ -102,7 +102,7 @@ const StopCardHeader = ({ .map((to) => ( ))} - {stopData.name} + {stopData.name}
@@ -126,7 +126,7 @@ const StopCardHeader = ({ {actionText} diff --git a/lib/components/viewers/nearby/stop.tsx b/lib/components/viewers/nearby/stop.tsx index e23789700..642c39805 100644 --- a/lib/components/viewers/nearby/stop.tsx +++ b/lib/components/viewers/nearby/stop.tsx @@ -98,10 +98,10 @@ const Stop = ({ actionIcon={Calendar} // Remove entityId URL parameter when leaving nearby view. actionParams={{ entityId: undefined }} + actionPath={`/schedule/${stopData.gtfsId}`} actionText={ } - actionUrl={`/schedule/${stopData.gtfsId}`} fromToSlot={fromToSlot} stopData={stopData} /> diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index c4d80e6b2..6279b4b60 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -206,21 +206,20 @@ class StopScheduleViewer extends Component {
)} - {/* Header Text */} {stopData?.name ? ( } - actionUrl={`/nearby/${stopData.lat},${stopData.lon}`} - CardTitle="h1" fromToSlot={this._renderControls()} onZoomClick={this._zoomToStop} stopData={stopData} + titleAs="h1" /> ) : ( From 62c674a1357bca185bd46cb1bbe06ed480b5741a Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 13:28:36 -0400 Subject: [PATCH 12/43] refactor(Link): Render anchor during tests --- lib/components/util/link.tsx | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/components/util/link.tsx b/lib/components/util/link.tsx index edaf99899..452c46ca3 100644 --- a/lib/components/util/link.tsx +++ b/lib/components/util/link.tsx @@ -18,17 +18,21 @@ const Link = ({ style, to, toParams -}: Props): JSX.Element => ( - - {children} - -) +}: Props): JSX.Element => + typeof jest !== 'undefined' ? ( + // Do not render router links in snapshots. + {children} + ) : ( + + {children} + + ) export default Link From 9ab9e79cf25875997b4afa0219ed374511c3e488 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 13:43:54 -0400 Subject: [PATCH 13/43] test: Update snapshots --- .../viewers/__snapshots__/nearby-view.js.snap | 40609 +++++++++++----- .../stop-schedule-viewer.ts.snap | 45 +- 2 files changed, 29731 insertions(+), 10923 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap index 9e92119b9..cca38ec14 100644 --- a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap +++ b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap @@ -4126,9 +4126,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >

viewers > nearby view renders proper scooter dates 1`] = `

- viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
@@ -4512,9 +4529,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >

viewers > nearby view renders proper scooter dates 1`] = `

- viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
@@ -4898,9 +4932,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >

viewers > nearby view renders proper scooter dates 1`] = `

- viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
@@ -5284,9 +5335,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - setHoveredStop={[Function]} - setMainPanelContent={[Function]} - setViewedStop={[Function]} showOperatorLogo={true} stopData={ Object { @@ -7553,149 +7600,33 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` ], } } - toggleAutoRefresh={[Function]} - transitOperators={Array []} > - +
- -
- -

- } - > -

- - - - - Roosevelt Station - Bay 2 - -
- -

-
-
-
- -
-
- - components.StopViewer.displayStopId - - -
- + } + fromToSlot={ + viewers > nearby view renders proper scooter dates 1`] = ` ], } } - > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -
    - + } + stopData={ + Object { + "__typename": "Stop", + "code": "36940", + "gtfsId": "kcm:36940", + "id": "U3RvcDprY206MzY5NDA", + "lat": 47.6758881, + "lon": -122.315994, + "name": "Roosevelt Station - Bay 2", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 96, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50190, + "realtimeState": "UPDATED", + "scheduledDeparture": 50094, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50994, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50994, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51894, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51894, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52794, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52794, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 53634, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53634, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 67424, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 67424, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 68264, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 68264, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 69164, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 69164, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70064, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70064, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70893, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70893, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 53634, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53634, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52794, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52794, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51894, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51894, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50994, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50994, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 96, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50190, + "realtimeState": "UPDATED", + "scheduledDeparture": 50094, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Roosevelt Station Sand Point", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "79", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 110, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 51099, + "realtimeState": "UPDATED", + "scheduledDeparture": 50989, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 54589, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54589, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 58189, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 58189, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 60289, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 60289, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 61789, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 61789, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + ], + }, + Object { + "pattern": Object { "headsign": "Loyal Heights Greenwood", "route": Object { "agency": Object { @@ -8464,25 +8533,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` "textColor": null, "type": 3, }, - } - } - roundedTop={false} - route={ - Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "45", - "textColor": null, - "type": 3, - } - } - stopTimes={ - Array [ + }, + "stoptimes": Array [ Object { "departureDelay": -85, "headsign": "Loyal Heights Greenwood", @@ -8613,127 +8665,2548 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` }, }, }, - ] - } - > - -
  • -
    -
    - - - - - 45 - - - - - + + } + dispatch={[Function]} + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": "36940", + "gtfsId": "kcm:36940", + "id": "U3RvcDprY206MzY5NDA", + "lat": 47.6758881, + "lon": -122.315994, + "name": "Roosevelt Station - Bay 2", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 96, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50190, + "realtimeState": "UPDATED", + "scheduledDeparture": 50094, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50994, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50994, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51894, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51894, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52794, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52794, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 53634, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53634, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 67424, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 67424, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 68264, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 68264, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 69164, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 69164, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70064, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70064, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70893, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70893, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 53634, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53634, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52794, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52794, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51894, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51894, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50994, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50994, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 96, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50190, + "realtimeState": "UPDATED", + "scheduledDeparture": 50094, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Roosevelt Station Sand Point", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "79", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 110, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 51099, + "realtimeState": "UPDATED", + "scheduledDeparture": 50989, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 54589, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54589, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 58189, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 58189, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 60289, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 60289, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 61789, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 61789, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Loyal Heights Greenwood", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": -85, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 50015, + "realtimeState": "UPDATED", + "scheduledDeparture": 50100, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 79, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 51079, + "realtimeState": "UPDATED", + "scheduledDeparture": 51000, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 51900, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51900, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 52800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52800, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 53760, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53760, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 22500, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22500, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 24300, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24300, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 26100, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26100, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 27900, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27900, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 28800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28800, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Loyal Heights Greenwood", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 28800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28800, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 27900, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27900, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 26100, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26100, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 24300, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24300, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 22500, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22500, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + ], + } + } + transitOperators={Array []} + > + +
    + +

    + Roosevelt Station - Bay 2 +

    +
    +
    +
    + +
    + + + + + + + + otpUi.FromToLocationPicker.planATrip + + + + + + + + + + viewers > nearby view renders proper scooter dates 1`] = ` } } iconVerticalAlign="middle" - iconViewBox="0 0 448 512" + iconViewBox="0 0 512 512" + size="0.9em" > - - - - - + + + +
    - -

    -
  • - - + + + + + -
    - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + +
    -
    -
    -
  • -
  • + otpUi.FromToLocationPicker.to + + + + + + + + + + + +
+ + + +
+
+ +
    + + +
  • +
    +
    + + + + + 45 + + + + + + Loyal Heights Greenwood + +
    + +
      +

      + +

      + + + + + + + + + + + + + + + common.daysOfWeek.friday + + + +
      + +

      +
    1. + + +
      + + + + + + + + + + + + + + + + + + + common.daysOfWeek.friday + + + + + + + + 1:53 PM + + + +
      +
      +
      +
    2. +
    3. viewers > nearby view renders proper scooter dates 1`] = ` title="62" > viewers > nearby view renders proper scooter dates 1`] = ` title="79" > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - setHoveredStop={[Function]} - setMainPanelContent={[Function]} - setViewedStop={[Function]} showOperatorLogo={true} stopData={ Object { @@ -12288,149 +15185,33 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` ], } } - toggleAutoRefresh={[Function]} - transitOperators={Array []} > - +
      - -
      - -

      - } - > -

      - - - - - Roosevelt - -
      - -

      -
      -
      -
      - -
      -
      - - components.StopViewer.displayStopId - - -
      - + } + fromToSlot={ + viewers > nearby view renders proper scooter dates 1`] = ` ], } } - > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      -
      -
      - -
        - + } + stopData={ + Object { + "__typename": "Stop", + "code": null, + "gtfsId": "40:990003", + "id": "U3RvcDo0MDo5OTAwMDM", + "lat": 47.676107, + "lon": -122.316041, + "name": "Roosevelt", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Capitol Hill", "route": Object { "agency": Object { "gtfsId": "40:40", @@ -12998,25 +15600,241 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` "textColor": "FFFFFF", "type": 0, }, - } - } - roundedTop={false} - route={ - Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 17880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 17880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - } - } - stopTimes={ - Array [ + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 18900, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18900, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 19800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19800, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 20700, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20700, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 21600, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21600, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 22500, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22500, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 23400, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23400, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 24300, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24300, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 25200, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25200, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 26100, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26100, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Capitol Hill", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 25200, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25200, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 23400, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23400, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 21600, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21600, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 19800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19800, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 17880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 17880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Angle Lake", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ Object { "departureDelay": 0, "headsign": "Angle Lake", @@ -13082,390 +15900,1692 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` }, }, }, - ] + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 16560, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16560, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + ], + } + } + > + + } + dispatch={[Function]} + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": null, + "gtfsId": "40:990003", + "id": "U3RvcDo0MDo5OTAwMDM", + "lat": 47.676107, + "lon": -122.316041, + "name": "Roosevelt", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Capitol Hill", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 17880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 17880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 18900, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18900, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 19800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19800, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 20700, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20700, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 21600, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21600, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 22500, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22500, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 23400, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23400, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 24300, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24300, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 25200, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25200, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 26100, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26100, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Capitol Hill", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 25200, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25200, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 23400, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23400, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 21600, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21600, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 19800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19800, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Capitol Hill", + "realtimeDeparture": 17880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 17880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Angle Lake", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 50220, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50220, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 50820, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50820, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 51420, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51420, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 52020, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52020, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 52620, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52620, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 16560, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16560, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + ], + } + } + transitOperators={Array []} + > + +
        - -
      • +

        -

        + +
        + + + + + + + + + + otpUi.FromToLocationPicker.planATrip + + + + + + -
        - - - - + viewers > nearby view renders proper scooter dates 1`] = ` } iconVerticalAlign="middle" iconViewBox="0 0 512 512" + size="0.9em" > - - - - - - + + + + + + + +
        - - -
      • -
      • - - + + + + + + -
        - - - - + viewers > nearby view renders proper scooter dates 1`] = ` } } iconVerticalAlign="middle" - iconViewBox="0 0 512 512" + iconViewBox="0 0 384 512" + size="0.9em" > - - - - - - - - + + + + + + + +
        -
        -
        -
      • -
    -
    -
    -
  • -
    -
    + otpUi.FromToLocationPicker.to + + + + + + + + + + + +
+ + + +
+
+ +
    viewers > nearby view renders proper scooter dates 1`] = ` Array [ Object { "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16560, + "headsign": "Angle Lake", + "realtimeDeparture": 50220, "realtimeState": "SCHEDULED", - "scheduledDeparture": 16560, - "serviceDay": 1705132800, + "scheduledDeparture": 50220, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 50820, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50820, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 51420, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51420, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 52020, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52020, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Angle Lake", + "realtimeDeparture": 52620, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52620, + "serviceDay": 1705046400, "trip": Object { "route": Object { "shortName": "1 Line", @@ -13820,7 +17883,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` title="1 Line" > viewers > nearby view renders proper scooter dates 1`] = ` "wordBreak": "break-word", } } - title="Northgate" + title="Angle Lake" > - Northgate + Angle Lake
@@ -13915,12 +17978,12 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` - common.daysOfWeek.saturday + common.daysOfWeek.friday @@ -13936,11 +17999,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` stopTime={ Object { "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16560, + "headsign": "Angle Lake", + "realtimeDeparture": 50220, "realtimeState": "SCHEDULED", - "scheduledDeparture": 16560, - "serviceDay": 1705132800, + "scheduledDeparture": 50220, + "serviceDay": 1705046400, "trip": Object { "route": Object { "shortName": "1 Line", @@ -13955,11 +18018,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` stopTime={ Object { "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16560, + "headsign": "Angle Lake", + "realtimeDeparture": 50220, "realtimeState": "SCHEDULED", - "scheduledDeparture": 16560, - "serviceDay": 1705132800, + "scheduledDeparture": 50220, + "serviceDay": 1705046400, "trip": Object { "route": Object { "shortName": "1 Line", @@ -14041,12 +18104,12 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` className="sc-hkwmXC eVsZcu" > - common.daysOfWeek.saturday + common.daysOfWeek.friday @@ -14057,11 +18120,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` stopTime={ Object { "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16560, + "headsign": "Angle Lake", + "realtimeDeparture": 50220, "realtimeState": "SCHEDULED", - "scheduledDeparture": 16560, - "serviceDay": 1705132800, + "scheduledDeparture": 50220, + "serviceDay": 1705046400, "trip": Object { "route": Object { "shortName": "1 Line", @@ -14072,9 +18135,319 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > - 4:36 AM + 1:57 PM + + + +
+ + + +
  • + + +
    + + + + + + + + + + + + + + + + + common.daysOfWeek.friday + + + + + + + + 2:07 PM + + + +
    +
    +
    +
  • +
  • + + +
    + + + + + + + + + + + + + + + + + common.daysOfWeek.friday + + + + + + + + 2:17 PM @@ -14090,7 +18463,380 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` + +
  • +
    +
    + + + + + 1 Line + + + + + + Northgate + +
    + +
      +

      + +

      + + + + + + + + + + + + + + + common.daysOfWeek.saturday + + + +
      + +

      +
    1. + + +
      + + + + + + + + + + + + + + + + + common.daysOfWeek.saturday + + + + + + + + 4:36 AM + + + +
      +
      +
      +
    2. +
    +
    +
    +
  • + + + viewers > nearby view renders proper scooter dates 1`] = ` title="1 Line" > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = `

    - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
    @@ -15296,9 +20059,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = `

    - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
    @@ -15682,9 +20462,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = `

    - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
    @@ -16068,9 +20865,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - setHoveredStop={[Function]} - setMainPanelContent={[Function]} - setViewedStop={[Function]} showOperatorLogo={true} stopData={ Object { @@ -18645,149 +23438,33 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` ], } } - toggleAutoRefresh={[Function]} - transitOperators={Array []} > - +
    - -
    - -

    - } - > -

    - - - - - Roosevelt Station - Bay 1 - -
    - -

    -
    -
    -
    - -
    -
    - - components.StopViewer.displayStopId - - -
    - + } + fromToSlot={ + viewers > nearby view renders proper scooter dates 1`] = ` ], } } - > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - -
      - + } + stopData={ + Object { + "__typename": "Stop", + "code": "16430", + "gtfsId": "kcm:16430", + "id": "U3RvcDprY206MTY0MzA", + "lat": 47.6757507, + "lon": -122.316673, + "name": "Roosevelt Station - Bay 1", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Sand Point East Green Lake", "route": Object { "agency": Object { "gtfsId": "kcm:1", @@ -19629,168 +24127,3702 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` "color": null, "longName": null, "mode": "BUS", - "shortName": "45", + "shortName": "62", "textColor": null, "type": 3, }, - } - } - roundedTop={false} - route={ - Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "45", - "textColor": null, - "type": 3, - } - } - stopTimes={ - Array [ + }, + "stoptimes": Array [ Object { - "departureDelay": -38, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 50122, + "departureDelay": 60, + "headsign": "Sand Point", + "realtimeDeparture": 50708, "realtimeState": "UPDATED", - "scheduledDeparture": 50160, + "scheduledDeparture": 50648, "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { - "departureDelay": 69, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 51129, + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 51548, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51548, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 116, + "headsign": "Sand Point", + "realtimeDeparture": 52601, "realtimeState": "UPDATED", - "scheduledDeparture": 51060, + "scheduledDeparture": 52485, "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { "departureDelay": 0, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 51960, + "headsign": "Sand Point", + "realtimeDeparture": 53385, "realtimeState": "SCHEDULED", - "scheduledDeparture": 51960, + "scheduledDeparture": 53385, "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { - "departureDelay": -423, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 52437, - "realtimeState": "UPDATED", - "scheduledDeparture": 52860, + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 54285, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54285, "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { "departureDelay": 0, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 53880, + "headsign": "Sand Point", + "realtimeDeparture": 55185, "realtimeState": "SCHEDULED", - "scheduledDeparture": 53880, + "scheduledDeparture": 55185, "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { "departureDelay": 0, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 20340, + "headsign": "Sand Point", + "realtimeDeparture": 63825, "realtimeState": "SCHEDULED", - "scheduledDeparture": 20340, - "serviceDay": 1705132800, + "scheduledDeparture": 63825, + "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { "departureDelay": 0, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 22140, + "headsign": "Sand Point", + "realtimeDeparture": 64485, "realtimeState": "SCHEDULED", - "scheduledDeparture": 22140, - "serviceDay": 1705132800, + "scheduledDeparture": 64485, + "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { "departureDelay": 0, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 23940, + "headsign": "Sand Point", + "realtimeDeparture": 65085, "realtimeState": "SCHEDULED", - "scheduledDeparture": 23940, - "serviceDay": 1705132800, + "scheduledDeparture": 65085, + "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { "departureDelay": 0, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 25740, + "headsign": "Sand Point", + "realtimeDeparture": 65685, "realtimeState": "SCHEDULED", - "scheduledDeparture": 25740, - "serviceDay": 1705132800, + "scheduledDeparture": 65685, + "serviceDay": 1705046400, "trip": Object { "route": Object { - "shortName": "45", + "shortName": "62", }, }, }, Object { "departureDelay": 0, - "headsign": "University District Roosevelt Station", - "realtimeDeparture": 26640, + "headsign": "Sand Point", + "realtimeDeparture": 66345, "realtimeState": "SCHEDULED", - "scheduledDeparture": 26640, - "serviceDay": 1705132800, + "scheduledDeparture": 66345, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Sand Point", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "79", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 52248, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52248, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 55848, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55848, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 56748, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 56748, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 59448, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 59448, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 63048, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 63048, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Madrona Special", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "988", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Madrona Special", + "realtimeDeparture": 56940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 56940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "988", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Sand Point East Green Lake", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 116, + "headsign": "Sand Point", + "realtimeDeparture": 52601, + "realtimeState": "UPDATED", + "scheduledDeparture": 52485, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Sand Point East Green Lake", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 66345, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 66345, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 65685, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 65685, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 65085, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 65085, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 64485, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 64485, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 63825, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 63825, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Roosevelt Station", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": -38, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 50122, + "realtimeState": "UPDATED", + "scheduledDeparture": 50160, + "serviceDay": 1705046400, "trip": Object { "route": Object { "shortName": "45", }, }, }, - ] - } - > - -
    • + Object { + "departureDelay": 69, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 51129, + "realtimeState": "UPDATED", + "scheduledDeparture": 51060, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 51960, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51960, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": -423, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 52437, + "realtimeState": "UPDATED", + "scheduledDeparture": 52860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 53880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53880, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 20340, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20340, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 22140, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22140, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 23940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 25740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25740, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 26640, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26640, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Roosevelt Station", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 26640, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26640, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 25740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25740, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 23940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 22140, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22140, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 20340, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20340, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + ], + } + } + > + + } + dispatch={[Function]} + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": "16430", + "gtfsId": "kcm:16430", + "id": "U3RvcDprY206MTY0MzA", + "lat": 47.6757507, + "lon": -122.316673, + "name": "Roosevelt Station - Bay 1", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Sand Point East Green Lake", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 60, + "headsign": "Sand Point", + "realtimeDeparture": 50708, + "realtimeState": "UPDATED", + "scheduledDeparture": 50648, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 51548, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51548, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 116, + "headsign": "Sand Point", + "realtimeDeparture": 52601, + "realtimeState": "UPDATED", + "scheduledDeparture": 52485, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 53385, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53385, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 54285, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54285, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 55185, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55185, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 63825, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 63825, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 64485, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 64485, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 65085, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 65085, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 65685, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 65685, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 66345, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 66345, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Sand Point", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "79", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 52248, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52248, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 55848, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55848, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 56748, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 56748, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 59448, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 59448, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Sand Point", + "realtimeDeparture": 63048, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 63048, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Madrona Special", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "988", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Madrona Special", + "realtimeDeparture": 56940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 56940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "988", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Sand Point East Green Lake", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 116, + "headsign": "Sand Point", + "realtimeDeparture": 52601, + "realtimeState": "UPDATED", + "scheduledDeparture": 52485, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Sand Point East Green Lake", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 66345, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 66345, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 65685, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 65685, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 65085, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 65085, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 64485, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 64485, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Sand Point", + "realtimeDeparture": 63825, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 63825, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Roosevelt Station", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": -38, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 50122, + "realtimeState": "UPDATED", + "scheduledDeparture": 50160, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 69, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 51129, + "realtimeState": "UPDATED", + "scheduledDeparture": 51060, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 51960, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51960, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": -423, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 52437, + "realtimeState": "UPDATED", + "scheduledDeparture": 52860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 53880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53880, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 20340, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20340, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 22140, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22140, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 23940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 25740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25740, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 26640, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26640, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Roosevelt Station", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 26640, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26640, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 25740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25740, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 23940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 22140, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22140, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt Station", + "realtimeDeparture": 20340, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20340, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + ], + } + } + transitOperators={Array []} + > + +
      + +

      + Roosevelt Station - Bay 1 +

      +
      +
      +
      + +
      + + + + + + + + otpUi.FromToLocationPicker.planATrip + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + +
      +
      + +
        + + +
      • viewers > nearby view renders proper scooter dates 1`] = ` title="45" > viewers > nearby view renders proper scooter dates 1`] = ` title="62" > viewers > nearby view renders proper scooter dates 1`] = ` title="79" > viewers > nearby view renders proper scooter dates 1`] = ` title="988" > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >
        + +

        + + } + > +

        + + + + + + + } + > + + + + + + + components.NearbyView.companyBicycle + +
        + +

        +
        +
        +
        + +
        + + + + + + + otpUi.FromToLocationPicker.planATrip + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        + + + +
      +
    • +
    • +
      + + } + vehicle={ + Object { + "__typename": "RentalVehicle", + "allowPickupNow": true, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", + "lat": 47.6757, + "lon": -122.3174, + "name": "Default vehicle type", + "network": "lime_seattle", + "operative": true, + "rentalUris": null, + "vehicleType": Object { + "formFactor": "BICYCLE", + }, + } + } + > + + } + vehicle={ + Object { + "__typename": "RentalVehicle", + "allowPickupNow": true, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", + "lat": 47.6757, + "lon": -122.3174, + "name": "Default vehicle type", + "network": "lime_seattle", + "operative": true, + "rentalUris": null, + "vehicleType": Object { + "formFactor": "BICYCLE", + }, + } + } + > + +
      + +

      viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6YTg5MDZiYTctMmU2NC00ZDk4LWI0ZGYtNmJjNDBlZTVkYzc3", - "lat": 47.675, - "lon": -122.3157, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", + "lat": 47.6757, + "lon": -122.3174, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -22507,9 +30940,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6YTg5MDZiYTctMmU2NC00ZDk4LWI0ZGYtNmJjNDBlZTVkYzc3", - "lat": 47.675, - "lon": -122.3157, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", + "lat": 47.6757, + "lon": -122.3174, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -22545,15 +30978,14 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

      - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
      @@ -22753,7 +31205,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `
    • viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", - "lat": 47.6757, - "lon": -122.3174, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", + "lat": 47.6764, + "lon": -122.3162, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -22804,15 +31255,14 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", - "lat": 47.6757, - "lon": -122.3174, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", + "lat": 47.6764, + "lon": -122.3162, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -22847,7 +31297,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

      viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", - "lat": 47.6757, - "lon": -122.3174, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", + "lat": 47.6764, + "lon": -122.3162, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -22893,9 +31343,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTU0NzM5MWEtMzZmNS00YjNkLWI3NWItZmI2YWExY2JjMjdh", - "lat": 47.6757, - "lon": -122.3174, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", + "lat": 47.6764, + "lon": -122.3162, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -22931,15 +31381,14 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

      - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
      @@ -23139,7 +31608,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `
    • viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", - "lat": 47.6764, - "lon": -122.3162, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "lat": 47.6754, + "lon": -122.3173, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23190,15 +31658,14 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", - "lat": 47.6764, - "lon": -122.3162, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "lat": 47.6754, + "lon": -122.3173, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23233,7 +31700,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

      viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", - "lat": 47.6764, - "lon": -122.3162, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "lat": 47.6754, + "lon": -122.3173, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23279,9 +31746,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NmMyNDRhZjEtZjJjOC00N2JhLWIzOTMtNDhkMGVhY2ZlMDFj", - "lat": 47.6764, - "lon": -122.3162, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "lat": 47.6754, + "lon": -122.3173, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23317,15 +31784,14 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

      - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
      @@ -23525,7 +32011,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `
    • viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTZkNTJkNzktOGMwZC00NzJiLThlMzgtZjgwMGJjZTBhN2Iy", "lat": 47.6754, - "lon": -122.3173, + "lon": -122.3174, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23576,15 +32061,14 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTZkNTJkNzktOGMwZC00NzJiLThlMzgtZjgwMGJjZTBhN2Iy", "lat": 47.6754, - "lon": -122.3173, + "lon": -122.3174, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23619,7 +32103,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

      viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTZkNTJkNzktOGMwZC00NzJiLThlMzgtZjgwMGJjZTBhN2Iy", "lat": 47.6754, - "lon": -122.3173, + "lon": -122.3174, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23665,9 +32149,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` Object { "__typename": "RentalVehicle", "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NDJjMjA0NWUtZDEyYS00MTg1LTlkNjEtM2ZkNjMwMzQyNjUz", + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTZkNTJkNzktOGMwZC00NzJiLThlMzgtZjgwMGJjZTBhN2Iy", "lat": 47.6754, - "lon": -122.3173, + "lon": -122.3174, "name": "Default vehicle type", "network": "lime_seattle", "operative": true, @@ -23703,15 +32187,14 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

      - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
      @@ -23911,7 +32414,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `
    • viewers > nearby view renders proper scooter dates 1`] = ` onMouseLeave={[Function]} tabIndex={0} > - } - vehicle={ + showOperatorLogo={true} + stopData={ Object { - "__typename": "RentalVehicle", - "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTZkNTJkNzktOGMwZC00NzJiLThlMzgtZjgwMGJjZTBhN2Iy", - "lat": 47.6754, - "lon": -122.3174, - "name": "Default vehicle type", - "network": "lime_seattle", - "operative": true, - "rentalUris": null, - "vehicleType": Object { - "formFactor": "BICYCLE", - }, - } - } - > - - } - vehicle={ - Object { - "__typename": "RentalVehicle", - "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6NTZkNTJkNzktOGMwZC00NzJiLThlMzgtZjgwMGJjZTBhN2Iy", - "lat": 47.6754, - "lon": -122.3174, - "name": "Default vehicle type", - "network": "lime_seattle", - "operative": true, - "rentalUris": null, - "vehicleType": Object { - "formFactor": "BICYCLE", + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 51360, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51360, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 54060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54060, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 55860, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 57660, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 57660, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 59460, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 59460, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 24000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24000, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 27720, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27720, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 31320, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31320, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 35160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35160, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 38940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + ], }, - } - } - > - -
      - -
      - -

      - - } - > -

      - - - - - - - } - > - - - - - - - components.NearbyView.companyBicycle - -
      - -

      -
      -
      -
      - -
      - - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      -
      -
      -
      -
      -
      -
    • -
    • -
      - + - } - showOperatorLogo={true} - stopData={ - Object { - "__typename": "Stop", - "code": "16440", - "gtfsId": "kcm:16440", - "id": "U3RvcDprY206MTY0NDA", - "lat": 47.675457, - "lon": -122.317467, - "name": "Roosevelt Station Bay 5 - Bay 5", - "stoptimesForPatterns": Array [ - Object { - "pattern": Object { - "headsign": "University District Maple Leaf", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 53822, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53822, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + ], }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "73", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, + ], + } + } + /> + } + homeTimezone="America/Los_Angeles" + showOperatorLogo={true} + stopData={ + Object { + "__typename": "Stop", + "code": "16440", + "gtfsId": "kcm:16440", + "id": "U3RvcDprY206MTY0NDA", + "lat": 47.675457, + "lon": -122.317467, + "name": "Roosevelt Station Bay 5 - Bay 5", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { "headsign": "University District Maple Leaf", - "realtimeDeparture": 51360, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51360, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, }, }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 54060, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 54060, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 51360, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51360, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 55860, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 55860, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 54060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54060, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 57660, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 57660, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 55860, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 59460, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 59460, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 57660, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 57660, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 24000, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24000, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 59460, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 59460, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 27720, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27720, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 24000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24000, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 31320, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31320, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 27720, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27720, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 35160, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35160, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 31320, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31320, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 38940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38940, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 35160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35160, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Downtown Seattle Special", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 38940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "984", - "textColor": null, - "type": 3, - }, + ], }, - "stoptimes": Array [ - Object { - "departureDelay": 0, + Object { + "pattern": Object { "headsign": "Downtown Seattle Special", - "realtimeDeparture": 66122, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 66122, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "984", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "984", + "textColor": null, + "type": 3, }, }, - ], - }, - Object { - "pattern": Object { - "headsign": "University District Maple Leaf", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Special", + "realtimeDeparture": 66122, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 66122, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "984", + }, + }, }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "73", - "textColor": null, - "type": 3, - }, + ], }, - "stoptimes": Array [ - Object { - "departureDelay": 0, + Object { + "pattern": Object { "headsign": "University District Maple Leaf", - "realtimeDeparture": 38940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38940, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, }, }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 35160, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35160, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 38940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 31320, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31320, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 35160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35160, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 27720, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27720, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 31320, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31320, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 24000, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24000, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 27720, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27720, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "University District Roosevelt", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 24000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24000, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "67", - "textColor": null, - "type": 3, - }, + ], }, - "stoptimes": Array [ - Object { - "departureDelay": 269, + Object { + "pattern": Object { "headsign": "University District Roosevelt", - "realtimeDeparture": 50471, - "realtimeState": "UPDATED", - "scheduledDeparture": 50202, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "67", + "textColor": null, + "type": 3, }, }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 51102, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51102, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + "stoptimes": Array [ + Object { + "departureDelay": 269, + "headsign": "University District Roosevelt", + "realtimeDeparture": 50471, + "realtimeState": "UPDATED", + "scheduledDeparture": 50202, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 52002, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52002, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 51102, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51102, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 52922, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52922, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 52002, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52002, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 53822, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53822, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 52922, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52922, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, }, }, - }, - ], - }, - ], - } - } - > - + +
      + + } + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": "16440", + "gtfsId": "kcm:16440", + "id": "U3RvcDprY206MTY0NDA", + "lat": 47.675457, + "lon": -122.317467, + "name": "Roosevelt Station Bay 5 - Bay 5", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { "headsign": "University District Maple Leaf", - "realtimeDeparture": 27720, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27720, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, }, }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 31320, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31320, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 51360, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51360, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 35160, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35160, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 54060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54060, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 38940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38940, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 55860, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Downtown Seattle Special", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "984", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Special", - "realtimeDeparture": 66122, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 66122, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "984", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 57660, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 57660, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "University District Maple Leaf", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "73", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 38940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38940, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 59460, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 59460, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 35160, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35160, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 24000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24000, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 31320, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31320, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 27720, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27720, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 27720, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27720, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 31320, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31320, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 24000, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24000, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 35160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35160, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "University District Roosevelt", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 38940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "67", - "textColor": null, - "type": 3, - }, + ], }, - "stoptimes": Array [ - Object { - "departureDelay": 269, - "headsign": "University District Roosevelt", - "realtimeDeparture": 50471, - "realtimeState": "UPDATED", - "scheduledDeparture": 50202, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + Object { + "pattern": Object { + "headsign": "Downtown Seattle Special", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "984", + "textColor": null, + "type": 3, }, }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 51102, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51102, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Special", + "realtimeDeparture": 66122, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 66122, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "984", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 52002, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52002, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + ], + }, + Object { + "pattern": Object { + "headsign": "University District Maple Leaf", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, }, }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 52922, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52922, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 38940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 53822, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53822, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 35160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35160, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, }, }, - }, - ], - }, - ], - } - } - /> - } - homeTimezone="America/Los_Angeles" - setHoveredStop={[Function]} - setMainPanelContent={[Function]} - setViewedStop={[Function]} - showOperatorLogo={true} - stopData={ - Object { - "__typename": "Stop", - "code": "16440", - "gtfsId": "kcm:16440", - "id": "U3RvcDprY206MTY0NDA", - "lat": 47.675457, - "lon": -122.317467, - "name": "Roosevelt Station Bay 5 - Bay 5", - "stoptimesForPatterns": Array [ - Object { - "pattern": Object { - "headsign": "University District Maple Leaf", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "73", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 51360, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51360, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 54060, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 54060, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 55860, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 55860, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 57660, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 57660, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 59460, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 59460, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 24000, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24000, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 27720, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27720, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 31320, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31320, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 35160, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35160, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 38940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38940, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Downtown Seattle Special", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "984", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Special", - "realtimeDeparture": 66122, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 66122, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "984", - }, - }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "University District Maple Leaf", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "73", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 38940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38940, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 35160, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35160, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 31320, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31320, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 27720, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27720, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 24000, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24000, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, - }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "University District Roosevelt", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "67", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 269, - "headsign": "University District Roosevelt", - "realtimeDeparture": 50471, - "realtimeState": "UPDATED", - "scheduledDeparture": 50202, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 51102, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51102, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", - }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 31320, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31320, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 27720, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27720, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 24000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24000, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 52002, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52002, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", + Object { + "pattern": Object { + "headsign": "University District Roosevelt", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "67", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 269, + "headsign": "University District Roosevelt", + "realtimeDeparture": 50471, + "realtimeState": "UPDATED", + "scheduledDeparture": 50202, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 51102, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51102, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 52002, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52002, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 52922, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52922, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 53822, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53822, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + ], }, - }, + ], + } + } + > + - -
      - -
      - -

      - } - > -

      + } + dispatch={[Function]} + fromToSlot={ + - - - - - Roosevelt Station Bay 5 - Bay 5 - -
      - -

      -
      -
      -
      - -
      -
      - - components.StopViewer.displayStopId - - -
      - + } + stopData={ + Object { + "__typename": "Stop", + "code": "16440", + "gtfsId": "kcm:16440", + "id": "U3RvcDprY206MTY0NDA", + "lat": 47.675457, + "lon": -122.317467, + "name": "Roosevelt Station Bay 5 - Bay 5", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "University District Maple Leaf", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, - ], + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, + }, }, - Object { - "pattern": Object { - "headsign": "Downtown Seattle Special", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 51360, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51360, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "984", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Special", - "realtimeDeparture": 66122, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 66122, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "984", - }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 54060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54060, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", }, }, - ], - }, - Object { - "pattern": Object { + }, + Object { + "departureDelay": 0, "headsign": "University District Maple Leaf", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "realtimeDeparture": 55860, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "73", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 38940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38940, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 57660, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 57660, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 59460, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 59460, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 24000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24000, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 27720, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27720, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 31320, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31320, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 35160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35160, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 38940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Downtown Seattle Special", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "984", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Special", + "realtimeDeparture": 66122, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 66122, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "984", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Maple Leaf", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 38940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38940, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", }, }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 35160, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35160, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 35160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35160, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", }, }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 31320, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31320, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 31320, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31320, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", }, }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 27720, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27720, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 27720, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27720, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", }, }, - Object { - "departureDelay": 0, - "headsign": "University District Maple Leaf", - "realtimeDeparture": 24000, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24000, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", - }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Maple Leaf", + "realtimeDeparture": 24000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24000, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", }, }, - ], + }, + ], + }, + Object { + "pattern": Object { + "headsign": "University District Roosevelt", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "67", + "textColor": null, + "type": 3, + }, }, - Object { - "pattern": Object { + "stoptimes": Array [ + Object { + "departureDelay": 269, "headsign": "University District Roosevelt", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "realtimeDeparture": 50471, + "realtimeState": "UPDATED", + "scheduledDeparture": 50202, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "67", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 269, - "headsign": "University District Roosevelt", - "realtimeDeparture": 50471, - "realtimeState": "UPDATED", - "scheduledDeparture": 50202, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 51102, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51102, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", - }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 51102, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51102, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", }, }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 52002, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52002, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", - }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 52002, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52002, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", }, }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 52922, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52922, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", - }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 52922, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52922, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", }, }, - Object { - "departureDelay": 0, - "headsign": "University District Roosevelt", - "realtimeDeparture": 53822, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53822, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "67", - }, + }, + Object { + "departureDelay": 0, + "headsign": "University District Roosevelt", + "realtimeDeparture": 53822, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53822, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", }, }, - ], - }, - ], - } + }, + ], + }, + ], } - > - + +
      - - - - otpUi.FromToLocationPicker.planATrip - - - - +

      + Roosevelt Station Bay 5 - Bay 5 +

      + +
      +
      + +
      + + + + + + + - - + + + + + - - - - - - - - - - + + + + + - otpUi.FromToLocationPicker.to - - - - - + + + + + + + + + + + + + + + + + + + - - - - -
      -
      +
      + +
      +
      + +
      @@ -26622,7 +36584,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` title="67" > viewers > nearby view renders proper scooter dates 1`] = ` title="73" > viewers > nearby view renders proper scooter dates 1`] = ` title="984" > viewers > nearby view renders proper scooter dates 1`] = `
    • - + +
      + + + + + + + + + + + + + + + + + common.daysOfWeek.friday + + + + + + + + 6:22 PM + + + +
      +
      +
      +
    • + + +
    + + + + + +
    +
    +
    +
    +
    +
    + +
  • +
    + + } + vehicle={ + Object { + "__typename": "RentalVehicle", + "allowPickupNow": true, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6OWM3ZDZkYjEtYWJiMi00OWFlLTg3NzAtOGNkNjQ1MzcwMGUw", + "lat": 47.675, + "lon": -122.3164, + "name": "Default vehicle type", + "network": "lime_seattle", + "operative": true, + "rentalUris": null, + "vehicleType": Object { + "formFactor": "BICYCLE", + }, + } + } + > + + } + vehicle={ + Object { + "__typename": "RentalVehicle", + "allowPickupNow": true, + "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6OWM3ZDZkYjEtYWJiMi00OWFlLTg3NzAtOGNkNjQ1MzcwMGUw", + "lat": 47.675, + "lon": -122.3164, + "name": "Default vehicle type", + "network": "lime_seattle", + "operative": true, + "rentalUris": null, + "vehicleType": Object { + "formFactor": "BICYCLE", + }, + } + } + > + +
    + +
    + +

    + + } + > +

    + + + + + + + } + > + + + + + + + components.NearbyView.companyBicycle + +
    + +

    +
    +
    +
    + +
    + + + + + + + otpUi.FromToLocationPicker.planATrip + + + + + + + - -
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - -
    -
    - -
  • - - -
    - - - - - -
    + + + + + + + + + + + + + + + + + + +
    +
    - - + +
  • viewers > nearby view renders proper scooter dates 1`] = ` onMouseLeave={[Function]} tabIndex={0} > - + } + showOperatorLogo={true} + stopData={ + Object { + "__typename": "Stop", + "code": null, + "gtfsId": "40:990004", + "id": "U3RvcDo0MDo5OTAwMDQ", + "lat": 47.677081, + "lon": -122.315928, + "name": "Roosevelt", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": -149, + "headsign": "Northgate", + "realtimeDeparture": 50191, + "realtimeState": "UPDATED", + "scheduledDeparture": 50340, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": -7, + "headsign": "Northgate", + "realtimeDeparture": 50933, + "realtimeState": "UPDATED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 162, + "headsign": "Northgate", + "realtimeDeparture": 51702, + "realtimeState": "UPDATED", + "scheduledDeparture": 51540, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 3, + "headsign": "Northgate", + "realtimeDeparture": 52143, + "realtimeState": "UPDATED", + "scheduledDeparture": 52140, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 53760, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53760, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 16920, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16920, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 25680, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25680, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, Object { - "__typename": "RentalVehicle", - "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6OWM3ZDZkYjEtYWJiMi00OWFlLTg3NzAtOGNkNjQ1MzcwMGUw", - "lat": 47.675, - "lon": -122.3164, - "name": "Default vehicle type", - "network": "lime_seattle", - "operative": true, - "rentalUris": null, - "vehicleType": Object { - "formFactor": "BICYCLE", + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, - } - } - /> - } - vehicle={ - Object { - "__typename": "RentalVehicle", - "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6OWM3ZDZkYjEtYWJiMi00OWFlLTg3NzAtOGNkNjQ1MzcwMGUw", - "lat": 47.675, - "lon": -122.3164, - "name": "Default vehicle type", - "network": "lime_seattle", - "operative": true, - "rentalUris": null, - "vehicleType": Object { - "formFactor": "BICYCLE", - }, - } - } - > - - } - vehicle={ - Object { - "__typename": "RentalVehicle", - "allowPickupNow": true, - "id": "UmVudGFsVmVoaWNsZTpsaW1lX3NlYXR0bGU6OWM3ZDZkYjEtYWJiMi00OWFlLTg3NzAtOGNkNjQ1MzcwMGUw", - "lat": 47.675, - "lon": -122.3164, - "name": "Default vehicle type", - "network": "lime_seattle", - "operative": true, - "rentalUris": null, - "vehicleType": Object { - "formFactor": "BICYCLE", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 3, + "headsign": "Northgate", + "realtimeDeparture": 52143, + "realtimeState": "UPDATED", + "scheduledDeparture": 52140, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 162, + "headsign": "Northgate", + "realtimeDeparture": 51702, + "realtimeState": "UPDATED", + "scheduledDeparture": 51540, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": -7, + "headsign": "Northgate", + "realtimeDeparture": 50933, + "realtimeState": "UPDATED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": -149, + "headsign": "Northgate", + "realtimeDeparture": 50191, + "realtimeState": "UPDATED", + "scheduledDeparture": 50340, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], }, - } - } - > - -
    - -
    - -

    - - } - > -

    - - - - - - - } - > - - - - - - - components.NearbyView.companyBicycle - -
    - -

    -
    -
    -
    - -
    - - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
  • -
  • -
    - + - } - showOperatorLogo={true} - stopData={ - Object { - "__typename": "Stop", - "code": null, - "gtfsId": "40:990004", - "id": "U3RvcDo0MDo5OTAwMDQ", - "lat": 47.677081, - "lon": -122.315928, - "name": "Roosevelt", - "stoptimesForPatterns": Array [ - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": -149, - "headsign": "Northgate", - "realtimeDeparture": 50191, - "realtimeState": "UPDATED", - "scheduledDeparture": 50340, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": -7, - "headsign": "Northgate", - "realtimeDeparture": 50933, - "realtimeState": "UPDATED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 162, - "headsign": "Northgate", - "realtimeDeparture": 51702, - "realtimeState": "UPDATED", - "scheduledDeparture": 51540, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 16920, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16920, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 3, + ], + } + } + /> + } + homeTimezone="America/Los_Angeles" + showOperatorLogo={true} + stopData={ + Object { + "__typename": "Stop", + "code": null, + "gtfsId": "40:990004", + "id": "U3RvcDo0MDo5OTAwMDQ", + "lat": 47.677081, + "lon": -122.315928, + "name": "Roosevelt", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { "headsign": "Northgate", - "realtimeDeparture": 52143, - "realtimeState": "UPDATED", - "scheduledDeparture": 52140, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "stoptimes": Array [ + Object { + "departureDelay": -149, + "headsign": "Northgate", + "realtimeDeparture": 50191, + "realtimeState": "UPDATED", + "scheduledDeparture": 50340, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 53760, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53760, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": -7, + "headsign": "Northgate", + "realtimeDeparture": 50933, + "realtimeState": "UPDATED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16920, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 16920, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 162, + "headsign": "Northgate", + "realtimeDeparture": 51702, + "realtimeState": "UPDATED", + "scheduledDeparture": 51540, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 18540, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 18540, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 3, + "headsign": "Northgate", + "realtimeDeparture": 52143, + "realtimeState": "UPDATED", + "scheduledDeparture": 52140, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 19380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 19380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 20280, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 20280, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 53760, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53760, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 21180, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 21180, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 16920, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16920, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22080, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22080, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22980, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22980, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 23880, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 23880, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 24780, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24780, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 25680, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 25680, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 26580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26580, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 25680, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 25680, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 23880, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 23880, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22080, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22080, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 25680, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25680, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 20280, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 20280, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, + ], + }, + Object { + "pattern": Object { "headsign": "Northgate", - "realtimeDeparture": 18540, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 18540, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, }, }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 26580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26580, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 25680, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25680, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 24780, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24780, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22980, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22980, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 21180, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 21180, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 19380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 19380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, + ], }, - "stoptimes": Array [ - Object { - "departureDelay": 0, + Object { + "pattern": Object { "headsign": "Northgate", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, }, }, - Object { - "departureDelay": 3, - "headsign": "Northgate", - "realtimeDeparture": 52143, - "realtimeState": "UPDATED", - "scheduledDeparture": 52140, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 162, - "headsign": "Northgate", - "realtimeDeparture": 51702, - "realtimeState": "UPDATED", - "scheduledDeparture": 51540, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": -7, - "headsign": "Northgate", - "realtimeDeparture": 50933, - "realtimeState": "UPDATED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": -149, - "headsign": "Northgate", - "realtimeDeparture": 50191, - "realtimeState": "UPDATED", - "scheduledDeparture": 50340, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, + ], }, - "stoptimes": Array [ - Object { - "departureDelay": 0, + Object { + "pattern": Object { "headsign": "Northgate", - "realtimeDeparture": 16920, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 16920, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, }, }, - ], - }, - ], - } - } - > - + +
    + + } + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": null, + "gtfsId": "40:990004", + "id": "U3RvcDo0MDo5OTAwMDQ", + "lat": 47.677081, + "lon": -122.315928, + "name": "Roosevelt", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { "headsign": "Northgate", - "realtimeDeparture": 22080, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22080, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 20280, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 20280, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + "stoptimes": Array [ + Object { + "departureDelay": -149, + "headsign": "Northgate", + "realtimeDeparture": 50191, + "realtimeState": "UPDATED", + "scheduledDeparture": 50340, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 18540, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 18540, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": -7, + "headsign": "Northgate", + "realtimeDeparture": 50933, + "realtimeState": "UPDATED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 26580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26580, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 162, + "headsign": "Northgate", + "realtimeDeparture": 51702, + "realtimeState": "UPDATED", + "scheduledDeparture": 51540, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 24780, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24780, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 3, + "headsign": "Northgate", + "realtimeDeparture": 52143, + "realtimeState": "UPDATED", + "scheduledDeparture": 52140, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22980, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22980, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 21180, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 21180, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 53760, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53760, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 19380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 19380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 16920, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16920, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 3, - "headsign": "Northgate", - "realtimeDeparture": 52143, - "realtimeState": "UPDATED", - "scheduledDeparture": 52140, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": 162, - "headsign": "Northgate", - "realtimeDeparture": 51702, - "realtimeState": "UPDATED", - "scheduledDeparture": 51540, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": -7, - "headsign": "Northgate", - "realtimeDeparture": 50933, - "realtimeState": "UPDATED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - Object { - "departureDelay": -149, - "headsign": "Northgate", - "realtimeDeparture": 50191, - "realtimeState": "UPDATED", - "scheduledDeparture": 50340, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16920, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 16920, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, }, }, - }, - ], - }, - ], - } - } - /> - } - homeTimezone="America/Los_Angeles" - setHoveredStop={[Function]} - setMainPanelContent={[Function]} - setViewedStop={[Function]} - showOperatorLogo={true} - stopData={ - Object { - "__typename": "Stop", - "code": null, - "gtfsId": "40:990004", - "id": "U3RvcDo0MDo5OTAwMDQ", - "lat": 47.677081, - "lon": -122.315928, - "name": "Roosevelt", - "stoptimesForPatterns": Array [ - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": -149, - "headsign": "Northgate", - "realtimeDeparture": 50191, - "realtimeState": "UPDATED", - "scheduledDeparture": 50340, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": -7, - "headsign": "Northgate", - "realtimeDeparture": 50933, - "realtimeState": "UPDATED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 162, - "headsign": "Northgate", - "realtimeDeparture": 51702, - "realtimeState": "UPDATED", - "scheduledDeparture": 51540, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 3, - "headsign": "Northgate", - "realtimeDeparture": 52143, - "realtimeState": "UPDATED", - "scheduledDeparture": 52140, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 53760, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53760, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16920, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 16920, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 18540, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 18540, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 19380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 19380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 20280, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 20280, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 21180, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 21180, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22080, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22080, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22980, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22980, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 23880, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 23880, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 24780, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24780, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 25680, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 25680, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 26580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26580, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 25680, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 25680, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 23880, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 23880, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22080, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22080, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 20280, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 20280, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 18540, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 18540, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 26580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26580, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 24780, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24780, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22980, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22980, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 21180, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 21180, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 19380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 19380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 3, - "headsign": "Northgate", - "realtimeDeparture": 52143, - "realtimeState": "UPDATED", - "scheduledDeparture": 52140, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, - }, - Object { - "departureDelay": 162, - "headsign": "Northgate", - "realtimeDeparture": 51702, - "realtimeState": "UPDATED", - "scheduledDeparture": 51540, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 25680, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25680, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": -7, - "headsign": "Northgate", - "realtimeDeparture": 50933, - "realtimeState": "UPDATED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 25680, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25680, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": -149, - "headsign": "Northgate", - "realtimeDeparture": 50191, - "realtimeState": "UPDATED", - "scheduledDeparture": 50340, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", - }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16920, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 16920, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, - }, - }, - ], - }, - ], - } - } - toggleAutoRefresh={[Function]} - transitOperators={Array []} - > - -
    - -
    - -

    - } - > -

    - - - - - Roosevelt - -
    - -

    -
    -
    -
    - -
    -
    - - components.StopViewer.displayStopId - - -
    - + + } + dispatch={[Function]} + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": null, + "gtfsId": "40:990004", + "id": "U3RvcDo0MDo5OTAwMDQ", + "lat": 47.677081, + "lon": -122.315928, + "name": "Roosevelt", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", }, - ], + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, - Object { - "pattern": Object { + "stoptimes": Array [ + Object { + "departureDelay": -149, "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", + "realtimeDeparture": 50191, + "realtimeState": "UPDATED", + "scheduledDeparture": 50340, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 25680, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 25680, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + Object { + "departureDelay": -7, + "headsign": "Northgate", + "realtimeDeparture": 50933, + "realtimeState": "UPDATED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 23880, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 23880, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 162, + "headsign": "Northgate", + "realtimeDeparture": 51702, + "realtimeState": "UPDATED", + "scheduledDeparture": 51540, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22080, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22080, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 3, + "headsign": "Northgate", + "realtimeDeparture": 52143, + "realtimeState": "UPDATED", + "scheduledDeparture": 52140, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 20280, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 20280, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 18540, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 18540, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 53760, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53760, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - ], - }, - Object { - "pattern": Object { + }, + Object { + "departureDelay": 0, "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", + "realtimeDeparture": 16920, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16920, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 26580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26580, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 24780, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24780, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 22980, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22980, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 21180, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 21180, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 19380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 19380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - ], + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 25680, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25680, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, - Object { - "pattern": Object { + "stoptimes": Array [ + Object { + "departureDelay": 0, "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", + "realtimeDeparture": 25680, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 25680, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 23880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 23880, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 3, - "headsign": "Northgate", - "realtimeDeparture": 52143, - "realtimeState": "UPDATED", - "scheduledDeparture": 52140, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22080, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 20280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 20280, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 18540, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 18540, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 26580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26580, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 24780, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24780, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 22980, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22980, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 21180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 21180, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 19380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 19380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", + }, + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": 162, - "headsign": "Northgate", - "realtimeDeparture": 51702, - "realtimeState": "UPDATED", - "scheduledDeparture": 51540, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 3, + "headsign": "Northgate", + "realtimeDeparture": 52143, + "realtimeState": "UPDATED", + "scheduledDeparture": 52140, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": -7, - "headsign": "Northgate", - "realtimeDeparture": 50933, - "realtimeState": "UPDATED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": 162, + "headsign": "Northgate", + "realtimeDeparture": 51702, + "realtimeState": "UPDATED", + "scheduledDeparture": 51540, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - Object { - "departureDelay": -149, - "headsign": "Northgate", - "realtimeDeparture": 50191, - "realtimeState": "UPDATED", - "scheduledDeparture": 50340, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, + }, + Object { + "departureDelay": -7, + "headsign": "Northgate", + "realtimeDeparture": 50933, + "realtimeState": "UPDATED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, }, - ], - }, - Object { - "pattern": Object { + }, + Object { + "departureDelay": -149, "headsign": "Northgate", - "route": Object { - "agency": Object { - "gtfsId": "40:40", - "name": "Sound Transit", + "realtimeDeparture": 50191, + "realtimeState": "UPDATED", + "scheduledDeparture": 50340, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "1 Line", }, - "color": "28813F", - "longName": "Northgate - Angle Lake", - "mode": "TRAM", - "shortName": "1 Line", - "textColor": "FFFFFF", - "type": 0, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Northgate", - "realtimeDeparture": 16920, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 16920, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "1 Line", - }, - }, + ], + }, + Object { + "pattern": Object { + "headsign": "Northgate", + "route": Object { + "agency": Object { + "gtfsId": "40:40", + "name": "Sound Transit", }, - ], + "color": "28813F", + "longName": "Northgate - Angle Lake", + "mode": "TRAM", + "shortName": "1 Line", + "textColor": "FFFFFF", + "type": 0, + }, }, - ], - } + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Northgate", + "realtimeDeparture": 16920, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 16920, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "1 Line", + }, + }, + }, + ], + }, + ], } - > - + +
    - - - - otpUi.FromToLocationPicker.planATrip - - - - +

    + Roosevelt +

    + +
    +
    + +
    + + + + + + + - - + + + + + - - - - - - - - - - + + + + + - otpUi.FromToLocationPicker.to - - - - - + + + + + + + + + + + + + + + + + + + - - - - -
    -
    +
    + +
    +
    + +
    @@ -32131,7 +44830,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` title="1 Line" > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - setHoveredStop={[Function]} - setMainPanelContent={[Function]} - setViewedStop={[Function]} showOperatorLogo={true} stopData={ Object { @@ -35194,1099 +47889,4338 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` "shortName": "73", }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Jackson Park Maple Leaf", - "realtimeDeparture": 31380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 31380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 35040, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35040, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 38700, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38700, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Jackson Park Maple Leaf", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 38700, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38700, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 35040, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35040, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 31380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 27660, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27660, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 24060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24060, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + ], + }, + ], + } + } + > + +
    + + } + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": "23561", + "gtfsId": "kcm:23561", + "id": "U3RvcDprY206MjM1NjE", + "lat": 47.6771355, + "lon": -122.315582, + "name": "Roosevelt Station - Bay 3", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Bothell", + "route": Object { + "agency": Object { + "gtfsId": "kcm:40", + "name": "Sound Transit", + }, + "color": "2B376E", + "longName": null, + "mode": "BUS", + "shortName": "522", + "textColor": "FFFFFF", + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Bothell", + "realtimeDeparture": 50160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50160, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Bothell", + "realtimeDeparture": 51960, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51960, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Bothell", + "realtimeDeparture": 54180, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54180, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Bothell", + "realtimeDeparture": 55920, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 55920, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Bothell", + "realtimeDeparture": 57840, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 57840, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Kenmore P&R", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "322", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 62160, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 62160, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 64080, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 64080, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 66000, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 66000, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 0, - "headsign": "Jackson Park Maple Leaf", - "realtimeDeparture": 35040, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35040, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "pattern": Object { + "headsign": "Woodinville", + "route": Object { + "agency": Object { + "gtfsId": "kcm:40", + "name": "Sound Transit", + }, + "color": "2B376E", + "longName": null, + "mode": "BUS", + "shortName": "522", + "textColor": "FFFFFF", + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Woodinville", + "realtimeDeparture": 51060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51060, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Woodinville", + "realtimeDeparture": 53040, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53040, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Woodinville", + "realtimeDeparture": 54960, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54960, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Woodinville", + "realtimeDeparture": 56880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 56880, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Woodinville", + "realtimeDeparture": 58800, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 58800, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "522", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 0, - "headsign": "Jackson Park Maple Leaf", - "realtimeDeparture": 38700, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38700, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "pattern": Object { + "headsign": "Kenmore P&R Roosevelt Station", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "322", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 59280, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 59280, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 61200, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 61200, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 65040, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 65040, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 68880, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 68880, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Kenmore P&R", + "realtimeDeparture": 72360, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 72360, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "322", + }, + }, + }, + ], }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Jackson Park Maple Leaf", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "73", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Jackson Park Maple Leaf", - "realtimeDeparture": 38700, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 38700, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "pattern": Object { + "headsign": "Northgate Station Roosevelt Station", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "67", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 7, + "headsign": "Northgate Station Roosevelt Station", + "realtimeDeparture": 50343, + "realtimeState": "UPDATED", + "scheduledDeparture": 50336, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate Station Roosevelt Station", + "realtimeDeparture": 51236, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51236, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate Station Roosevelt Station", + "realtimeDeparture": 52136, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52136, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate Station Roosevelt Station", + "realtimeDeparture": 53036, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53036, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Northgate Station Roosevelt Station", + "realtimeDeparture": 53996, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53996, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "67", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 0, - "headsign": "Jackson Park Maple Leaf", - "realtimeDeparture": 35040, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 35040, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "pattern": Object { + "headsign": "Jackson Park Maple Leaf", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 51300, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51300, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 54900, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54900, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 56760, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 56760, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 58560, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 58560, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 60360, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 60360, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 24060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24060, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 27660, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27660, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 31380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 35040, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35040, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 38700, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38700, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 0, - "headsign": "Jackson Park Maple Leaf", - "realtimeDeparture": 31380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 31380, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "73", + Object { + "pattern": Object { + "headsign": "Jackson Park Maple Leaf", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "73", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 38700, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 38700, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 35040, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 35040, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 31380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 31380, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 27660, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27660, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Jackson Park Maple Leaf", + "realtimeDeparture": 24060, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24060, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "73", + }, + }, + }, + ], }, - }, + ], + } + } + > + - -
    - -
    - -

    - } - > -

    + } + dispatch={[Function]} + fromToSlot={ + - - - - - Roosevelt Station - Bay 3 - -
    - -

    -
    -
    -
    - -
    -
    - - components.StopViewer.displayStopId - - -
    - + +
    + +

    + Roosevelt Station - Bay 3 +

    +
    +
    +
    + +
    + + - - - - - otpUi.FromToLocationPicker.planATrip - - - + - - - + + - - + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - -
    -
    +
    + +
    +
    + +
    @@ -36450,7 +52384,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` title="522" > viewers > nearby view renders proper scooter dates 1`] = ` title="67" > viewers > nearby view renders proper scooter dates 1`] = ` title="522" > viewers > nearby view renders proper scooter dates 1`] = ` title="73" > viewers > nearby view renders proper scooter dates 1`] = ` title="322" > viewers > nearby view renders proper scooter dates 1`] = ` title="322" > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = `

    - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - - - - otpUi.FromToLocationPicker.planATrip - - - - - - - + + + otpUi.FromToLocationPicker.planATrip + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 512 512" size="0.9em" > - - - - - - - - - - - - - - + otpUi.FromToLocationPicker.from + + + + + + + - - - - viewers > nearby view renders proper scooter dates 1`] = ` iconViewBox="0 0 384 512" size="0.9em" > - - - - - - - - - - - - - - - - + + otpUi.FromToLocationPicker.to + + + + + + + + + + +
    @@ -41155,9 +57106,8 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - setHoveredStop={[Function]} - setMainPanelContent={[Function]} - setViewedStop={[Function]} showOperatorLogo={true} stopData={ Object { @@ -43321,853 +59268,2485 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` "shortName": "45", }, }, - }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 28767, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 28767, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 28767, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28767, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Loyal Heights Greenwood", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 28767, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28767, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 27867, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27867, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 26067, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26067, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 24267, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24267, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 22467, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22467, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], + }, + ], + } + } + > + +
    + + } + fromToSlot={ + + } + stopData={ + Object { + "__typename": "Stop", + "code": "36931", + "gtfsId": "kcm:36931", + "id": "U3RvcDprY206MzY5MzE", + "lat": 47.6758652, + "lon": -122.313545, + "name": "NE 65th St & 14th Ave NE", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 96, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50136, + "realtimeState": "UPDATED", + "scheduledDeparture": 50040, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51840, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51840, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 53580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53580, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 67380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 67380, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 68220, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 68220, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 69120, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 69120, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70020, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70020, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70860, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 53580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53580, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51840, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51840, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + Object { + "departureDelay": 96, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50136, + "realtimeState": "UPDATED", + "scheduledDeparture": 50040, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", + }, + }, + }, + ], }, - }, - ], - }, - Object { - "pattern": Object { - "headsign": "Loyal Heights Greenwood", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", - }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "45", - "textColor": null, - "type": 3, - }, - }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 28767, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 28767, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", + Object { + "pattern": Object { + "headsign": "Roosevelt Station Sand Point", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "79", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 110, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 51066, + "realtimeState": "UPDATED", + "scheduledDeparture": 50956, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 54556, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54556, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 58156, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 58156, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 60256, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 60256, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 61756, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 61756, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 27867, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27867, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", + Object { + "pattern": Object { + "headsign": "Loyal Heights Greenwood", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": -85, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 49974, + "realtimeState": "UPDATED", + "scheduledDeparture": 50059, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 79, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 51038, + "realtimeState": "UPDATED", + "scheduledDeparture": 50959, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 51859, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51859, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 52759, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52759, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 53719, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53719, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 22467, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22467, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 24267, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24267, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 26067, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26067, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 27867, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27867, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 28767, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28767, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], }, - }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 26067, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26067, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", + Object { + "pattern": Object { + "headsign": "Loyal Heights Greenwood", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 28767, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28767, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 27867, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27867, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 26067, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26067, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 24267, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24267, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 22467, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22467, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", + }, + }, + }, + ], }, - }, + ], + } + } + > + - -
    - -
    - -

    - } - > -

    + } + dispatch={[Function]} + fromToSlot={ + - - - - - NE 65th St & 14th Ave NE - -
    - -

    -
    -
    -
    - -
    -
    - - components.StopViewer.displayStopId - - -
    - + } + stopData={ + Object { + "__typename": "Stop", + "code": "36931", + "gtfsId": "kcm:36931", + "id": "U3RvcDprY206MzY5MzE", + "lat": 47.6758652, + "lon": -122.313545, + "name": "NE 65th St & 14th Ave NE", + "stoptimesForPatterns": Array [ + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 96, "headsign": "Downtown Seattle Fremont", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "realtimeDeparture": 50136, + "realtimeState": "UPDATED", + "scheduledDeparture": 50040, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "62", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 96, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 50136, - "realtimeState": "UPDATED", - "scheduledDeparture": 50040, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 50940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51840, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51840, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 51840, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51840, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 53580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53580, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 53580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53580, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 67380, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 67380, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 67380, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 67380, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 68220, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 68220, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 68220, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 68220, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 69120, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 69120, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 69120, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 69120, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70020, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70020, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 70020, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 70020, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 70860, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 70860, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 70860, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 70860, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, - }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Downtown Seattle Fremont", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, - ], + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "62", + "textColor": null, + "type": 3, + }, }, - Object { - "pattern": Object { + "stoptimes": Array [ + Object { + "departureDelay": 0, "headsign": "Downtown Seattle Fremont", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "realtimeDeparture": 53580, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53580, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "62", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 53580, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53580, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 52740, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52740, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 52740, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52740, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 51840, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51840, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 51840, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51840, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50940, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 50940, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 0, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 50940, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 50940, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, + }, + Object { + "departureDelay": 96, + "headsign": "Downtown Seattle Fremont", + "realtimeDeparture": 50136, + "realtimeState": "UPDATED", + "scheduledDeparture": 50040, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "62", }, }, - Object { - "departureDelay": 96, - "headsign": "Downtown Seattle Fremont", - "realtimeDeparture": 50136, - "realtimeState": "UPDATED", - "scheduledDeparture": 50040, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "62", - }, - }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Roosevelt Station Sand Point", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, - ], + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "79", + "textColor": null, + "type": 3, + }, }, - Object { - "pattern": Object { + "stoptimes": Array [ + Object { + "departureDelay": 110, "headsign": "Roosevelt Station Sand Point", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "realtimeDeparture": 51066, + "realtimeState": "UPDATED", + "scheduledDeparture": 50956, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "79", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 110, - "headsign": "Roosevelt Station Sand Point", - "realtimeDeparture": 51066, - "realtimeState": "UPDATED", - "scheduledDeparture": 50956, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "79", - }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 54556, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 54556, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", }, }, - Object { - "departureDelay": 0, - "headsign": "Roosevelt Station Sand Point", - "realtimeDeparture": 54556, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 54556, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "79", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 58156, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 58156, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", }, }, - Object { - "departureDelay": 0, - "headsign": "Roosevelt Station Sand Point", - "realtimeDeparture": 58156, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 58156, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "79", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 60256, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 60256, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", }, }, - Object { - "departureDelay": 0, - "headsign": "Roosevelt Station Sand Point", - "realtimeDeparture": 60256, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 60256, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "79", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Roosevelt Station Sand Point", + "realtimeDeparture": 61756, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 61756, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "79", }, }, - Object { - "departureDelay": 0, - "headsign": "Roosevelt Station Sand Point", - "realtimeDeparture": 61756, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 61756, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "79", - }, - }, + }, + ], + }, + Object { + "pattern": Object { + "headsign": "Loyal Heights Greenwood", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", }, - ], + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, }, - Object { - "pattern": Object { + "stoptimes": Array [ + Object { + "departureDelay": -85, "headsign": "Loyal Heights Greenwood", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "realtimeDeparture": 49974, + "realtimeState": "UPDATED", + "scheduledDeparture": 50059, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "45", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": -85, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 49974, - "realtimeState": "UPDATED", - "scheduledDeparture": 50059, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "45", - }, - }, - }, - Object { - "departureDelay": 79, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 51038, - "realtimeState": "UPDATED", - "scheduledDeparture": 50959, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "45", - }, - }, - }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 51859, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 51859, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "45", - }, + Object { + "departureDelay": 79, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 51038, + "realtimeState": "UPDATED", + "scheduledDeparture": 50959, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 52759, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 52759, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 51859, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 51859, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 53719, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 53719, - "serviceDay": 1705046400, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 52759, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 52759, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 22467, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22467, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 53719, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 53719, + "serviceDay": 1705046400, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 24267, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24267, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 22467, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22467, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 26067, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26067, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 24267, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24267, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 27867, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27867, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 26067, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26067, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 28767, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 28767, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 27867, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27867, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - ], - }, - Object { - "pattern": Object { + }, + Object { + "departureDelay": 0, "headsign": "Loyal Heights Greenwood", - "route": Object { - "agency": Object { - "gtfsId": "kcm:1", - "name": "Metro Transit", + "realtimeDeparture": 28767, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28767, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, - "color": null, - "longName": null, - "mode": "BUS", - "shortName": "45", - "textColor": null, - "type": 3, }, }, - "stoptimes": Array [ - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 28767, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 28767, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + ], + }, + Object { + "pattern": Object { + "headsign": "Loyal Heights Greenwood", + "route": Object { + "agency": Object { + "gtfsId": "kcm:1", + "name": "Metro Transit", + }, + "color": null, + "longName": null, + "mode": "BUS", + "shortName": "45", + "textColor": null, + "type": 3, + }, + }, + "stoptimes": Array [ + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 28767, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 28767, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 27867, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 27867, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 27867, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 27867, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 26067, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 26067, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 26067, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 26067, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 24267, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 24267, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 24267, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 24267, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - Object { - "departureDelay": 0, - "headsign": "Loyal Heights Greenwood", - "realtimeDeparture": 22467, - "realtimeState": "SCHEDULED", - "scheduledDeparture": 22467, - "serviceDay": 1705132800, - "trip": Object { - "route": Object { - "shortName": "45", - }, + }, + Object { + "departureDelay": 0, + "headsign": "Loyal Heights Greenwood", + "realtimeDeparture": 22467, + "realtimeState": "SCHEDULED", + "scheduledDeparture": 22467, + "serviceDay": 1705132800, + "trip": Object { + "route": Object { + "shortName": "45", }, }, - ], - }, - ], - } + }, + ], + }, + ], } - > - + +
    - - - - otpUi.FromToLocationPicker.planATrip - - - - +

    + NE 65th St & 14th Ave NE +

    + +
    +
    + +
    + + + + + + + - - + + + + + - - - - - - - - - - + + + + + - otpUi.FromToLocationPicker.to - - - - - + + + + + + + + + + + + + + + + + + + - - - - -
    -
    +
    + +
    +
    + +
    @@ -44539,7 +63340,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` title="45" > viewers > nearby view renders proper scooter dates 1`] = ` title="62" > viewers > nearby view renders proper scooter dates 1`] = ` title="79" > viewers > stop viewer should render with initial stop id a "wrapRichTextChunksInFragment": undefined, } } - setLocation={[Function]} showBlockIds={false} stopId="TriMet:13170" transitOperators={Array []} @@ -266,24 +265,32 @@ exports[`components > viewers > stop viewer should render with initial stop id a
    -
    -

    - - components.StopViewer.loadingText - -

    - - - -
    + +
    + +
    +

    + + components.StopViewer.loadingText + +

    +
    +
    +
    +
    + + +
    Date: Wed, 13 Mar 2024 13:44:14 -0400 Subject: [PATCH 14/43] refactor(NearbyView): Remove unused func arg --- lib/components/viewers/nearby/nearby-view.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/components/viewers/nearby/nearby-view.tsx b/lib/components/viewers/nearby/nearby-view.tsx index 8c60116cd..732ae35fe 100644 --- a/lib/components/viewers/nearby/nearby-view.tsx +++ b/lib/components/viewers/nearby/nearby-view.tsx @@ -45,7 +45,7 @@ type Props = { zoomToPlace: (map: MapRef, stopData: Location) => void } -const getNearbyItem = (place: any, setLocation: SetLocationHandler) => { +const getNearbyItem = (place: any) => { const fromTo = switch (place.__typename) { From a592869299f3c08752c1ea6eef29fc59240d85e9 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:48:33 -0400 Subject: [PATCH 15/43] refactor: Fix types --- lib/components/util/link.tsx | 2 +- lib/components/viewers/nearby/nearby-view.tsx | 9 +--- .../viewers/nearby/stop-card-header.tsx | 53 +++++++++---------- lib/components/viewers/nearby/stop.tsx | 7 +-- .../viewers/stop-schedule-viewer.tsx | 2 +- lib/util/api.ts | 2 +- 6 files changed, 32 insertions(+), 43 deletions(-) diff --git a/lib/components/util/link.tsx b/lib/components/util/link.tsx index 452c46ca3..e7af918e3 100644 --- a/lib/components/util/link.tsx +++ b/lib/components/util/link.tsx @@ -5,7 +5,7 @@ import { combineQueryParams } from '../../util/api' interface Props extends HTMLAttributes { to: string - toParams: Record + toParams?: Record } /** diff --git a/lib/components/viewers/nearby/nearby-view.tsx b/lib/components/viewers/nearby/nearby-view.tsx index 732ae35fe..2eedd3564 100644 --- a/lib/components/viewers/nearby/nearby-view.tsx +++ b/lib/components/viewers/nearby/nearby-view.tsx @@ -52,7 +52,7 @@ const getNearbyItem = (place: any) => { case 'RentalVehicle': return case 'Stop': - return + return case 'VehicleParking': return case 'BikeRentalStation': @@ -83,11 +83,6 @@ function NearbyView({ const [loading, setLoading] = useState(true) const firstItemRef = useRef(null) - const onClickSetLocation: SetLocationHandler = (payload) => { - setMainPanelContent(0) - setLocation(payload) - } - // Make sure the highlighted location is cleaned up when leaving nearby useEffect(() => { return function cleanup() { @@ -174,7 +169,7 @@ function NearbyView({ /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */ tabIndex={0} > - {getNearbyItem(n.place, onClickSetLocation)} + {getNearbyItem(n.place)}
  • )) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index bc9869b81..a4aac7066 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -7,7 +7,7 @@ import React, { ComponentType } from 'react' import { AppReduxState } from '../../../util/state-types' import { Icon, IconWithText } from '../../util/styledIcon' -import { Pattern, StopTime } from '../../util/types' +import { PatternStopTime } from '../../util/types' import InvisibleA11yLabel from '../../util/invisible-a11y-label' import Link from '../../util/link' import OperatorLogo from '../../util/operator-logo' @@ -15,15 +15,10 @@ import Strong from '../../util/strong-text' import { CardBody, CardHeader, CardTitle as NearbyCardTitle } from './styled' -type PatternStopTime = { - pattern: Pattern - stoptimes: StopTime[] -} - type StopData = Place & { - code: string - gtfsId: string - stoptimesForPatterns: PatternStopTime[] + code?: string + gtfsId?: string + stoptimesForPatterns?: PatternStopTime[] } type Props = { @@ -32,7 +27,7 @@ type Props = { actionPath: string actionText: JSX.Element fromToSlot: JSX.Element - onZoomClick: () => void + onZoomClick?: () => void stopData: StopData titleAs?: string transitOperators?: TransitOperator[] @@ -78,31 +73,35 @@ const StopCardHeader = ({ transitOperators }: Props): JSX.Element => { const intl = useIntl() - const agencies = stopData.stoptimesForPatterns?.reduce>( - // @ts-expect-error The agency type is not yet compatible with OTP2 - (prev, cur) => prev.add(cur.pattern.route.agency.gtfsId), - new Set() - ) + const agencies = + stopData.stoptimesForPatterns?.reduce>( + // @ts-expect-error The agency type is not yet compatible with OTP2 + (prev, cur) => prev.add(cur.pattern.route.agency.gtfsId), + new Set() + ) || new Set() const zoomButtonText = onZoomClick ? intl.formatMessage({ id: 'components.StopViewer.zoomToStop' }) - : null + : undefined return ( <> - {transitOperators - ?.filter((to) => Array.from(agencies).includes(to.agencyId)) - // Second pass to remove duplicates based on name - .filter( - (to, index, arr) => - index === arr.findIndex((t) => t?.name === to?.name) - ) - .map((to) => ( - - ))} - {stopData.name} + {/* @ts-expect-error The 'as' prop in styled-components is not listed for TypeScript. */} + + {transitOperators + ?.filter((to) => Array.from(agencies).includes(to.agencyId)) + // Second pass to remove duplicates based on name + .filter( + (to, index, arr) => + index === arr.findIndex((t) => t?.name === to?.name) + ) + .map((to) => ( + + ))} + {stopData.name} +
    diff --git a/lib/components/viewers/nearby/stop.tsx b/lib/components/viewers/nearby/stop.tsx index 642c39805..706395c65 100644 --- a/lib/components/viewers/nearby/stop.tsx +++ b/lib/components/viewers/nearby/stop.tsx @@ -8,7 +8,7 @@ import React from 'react' import { AppReduxState } from '../../../util/state-types' import { extractHeadsignFromPattern } from '../../../util/viewer' import { NearbyViewConfig } from '../../../util/config-types' -import { Pattern, StopTime } from '../../util/types' +import { PatternStopTime, StopTime } from '../../util/types' import PatternRow from '../pattern-row' import TimezoneWarning from '../timezone-warning' @@ -17,11 +17,6 @@ import StopCardHeader from './stop-card-header' const { getUserTimezone } = coreUtils.time -type PatternStopTime = { - pattern: Pattern - stoptimes: StopTime[] -} - type StopData = Place & { code: string gtfsId: string diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index 6279b4b60..a247591b7 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -271,7 +271,7 @@ class StopScheduleViewer extends Component { return (
    - + {stopData ? : null} + addedParams?: Record ): string { const search = { ...getUrlParams(), From 43c047d3f0bc58743eeb21fd332b1af2896fd0c6 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:54:14 -0400 Subject: [PATCH 16/43] test(NearbyView): Update snapshots --- .../viewers/__snapshots__/nearby-view.js.snap | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap index cca38ec14..4f8ebe7f1 100644 --- a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap +++ b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap @@ -5901,7 +5901,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` } /> } - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -7036,7 +7035,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -9915,7 +9913,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

    - Roosevelt Station - Bay 2 + + Roosevelt Station - Bay 2 +

    @@ -9936,7 +9936,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = `
    - +
    viewers > nearby view renders proper scooter dates 1`] = ` } /> } - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -14822,7 +14821,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -16696,7 +16694,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

    - Roosevelt + + Roosevelt +

    @@ -16717,7 +16717,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId
    - viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = `

    - +

    viewers > nearby view renders proper scooter dates 1`] = ` } /> } - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -22797,7 +22796,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -26061,7 +26059,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

    - Roosevelt Station - Bay 1 + + Roosevelt Station - Bay 1 +

    @@ -26082,7 +26082,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = `
    - + viewers > nearby view renders proper scooter dates 1`] = ` } /> } - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -33523,7 +33522,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -35397,7 +35395,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

    - Roosevelt Station Bay 5 - Bay 5 + + Roosevelt Station Bay 5 - Bay 5 +

    @@ -35418,7 +35418,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` - + viewers > nearby view renders proper scooter dates 1`] = ` } /> } - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -40388,7 +40387,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -43137,7 +43135,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

    - Roosevelt + + Roosevelt +

    @@ -43158,7 +43158,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` - + viewers > nearby view renders proper scooter dates 1`] = ` } /> } - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -47377,7 +47376,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -50641,7 +50639,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

    - Roosevelt Station - Bay 3 + + Roosevelt Station - Bay 3 +

    @@ -50662,7 +50662,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` - + viewers > nearby view renders proper scooter dates 1`] = ` } /> } - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -58807,7 +58806,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` /> } homeTimezone="America/Los_Angeles" - showOperatorLogo={true} stopData={ Object { "__typename": "Stop", @@ -61686,7 +61684,9 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = `

    - NE 65th St & 14th Ave NE + + NE 65th St & 14th Ave NE +

    @@ -61707,7 +61707,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } > viewers > nearby view renders proper scooter dates 1`] = ` - + Date: Wed, 13 Mar 2024 14:57:43 -0400 Subject: [PATCH 17/43] refactor(Link): Export different component when using jest. --- lib/components/util/link.tsx | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/components/util/link.tsx b/lib/components/util/link.tsx index e7af918e3..7e51eb85a 100644 --- a/lib/components/util/link.tsx +++ b/lib/components/util/link.tsx @@ -18,21 +18,22 @@ const Link = ({ style, to, toParams -}: Props): JSX.Element => - typeof jest !== 'undefined' ? ( - // Do not render router links in snapshots. - {children} - ) : ( - - {children} - - ) +}: Props): JSX.Element => ( + + {children} + +) -export default Link +const DummyLink = ({ children, to }: Props): JSX.Element => ( + // Do not render router links in snapshots. + {children} +) + +export default typeof jest !== 'undefined' ? DummyLink : Link From 551fe4283acd8b83fde1a5a3188df48cf725c15a Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:07:27 -0400 Subject: [PATCH 18/43] refactor(StopCardHeader): Reuse StopData type. --- lib/components/viewers/nearby/stop-card-header.tsx | 10 ++-------- lib/components/viewers/nearby/stop.tsx | 11 ++--------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index a4aac7066..a1f785724 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -1,13 +1,13 @@ import { connect } from 'react-redux' import { FormattedMessage, useIntl } from 'react-intl' import { MapPin } from '@styled-icons/fa-solid' -import { Place, TransitOperator } from '@opentripplanner/types' import { Search } from '@styled-icons/fa-solid/Search' +import { TransitOperator } from '@opentripplanner/types' import React, { ComponentType } from 'react' import { AppReduxState } from '../../../util/state-types' import { Icon, IconWithText } from '../../util/styledIcon' -import { PatternStopTime } from '../../util/types' +import { StopData } from '../../util/types' import InvisibleA11yLabel from '../../util/invisible-a11y-label' import Link from '../../util/link' import OperatorLogo from '../../util/operator-logo' @@ -15,12 +15,6 @@ import Strong from '../../util/strong-text' import { CardBody, CardHeader, CardTitle as NearbyCardTitle } from './styled' -type StopData = Place & { - code?: string - gtfsId?: string - stoptimesForPatterns?: PatternStopTime[] -} - type Props = { actionIcon: ComponentType actionParams?: Record diff --git a/lib/components/viewers/nearby/stop.tsx b/lib/components/viewers/nearby/stop.tsx index 706395c65..18b71905d 100644 --- a/lib/components/viewers/nearby/stop.tsx +++ b/lib/components/viewers/nearby/stop.tsx @@ -1,14 +1,13 @@ import { Calendar } from '@styled-icons/fa-solid' import { connect } from 'react-redux' import { FormattedMessage } from 'react-intl' -import { Place } from '@opentripplanner/types' import coreUtils from '@opentripplanner/core-utils' import React from 'react' import { AppReduxState } from '../../../util/state-types' import { extractHeadsignFromPattern } from '../../../util/viewer' import { NearbyViewConfig } from '../../../util/config-types' -import { PatternStopTime, StopTime } from '../../util/types' +import { PatternStopTime, StopData, StopTime } from '../../util/types' import PatternRow from '../pattern-row' import TimezoneWarning from '../timezone-warning' @@ -17,12 +16,6 @@ import StopCardHeader from './stop-card-header' const { getUserTimezone } = coreUtils.time -type StopData = Place & { - code: string - gtfsId: string - stoptimesForPatterns: PatternStopTime[] -} - const fullTimestamp = (stoptime: StopTime) => (stoptime.serviceDay || 0) + (stoptime.realtimeDeparture || 0) @@ -39,7 +32,7 @@ const Stop = ({ nearbyViewConfig, stopData }: Props): JSX.Element => { - const patternRows = stopData.stoptimesForPatterns + const patternRows = (stopData.stoptimesForPatterns || []) ?.reduce((acc, cur) => { const currentHeadsign = extractHeadsignFromPattern(cur.pattern) const dupe = acc.findIndex( From 423878daf9599d360d4a0894b65daa372c1e15ee Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:21:09 -0400 Subject: [PATCH 19/43] refactor(StopScheduleViewer): Update styles --- .../viewers/__snapshots__/nearby-view.js.snap | 80 +++++++++---------- .../stop-schedule-viewer.ts.snap | 2 +- lib/components/viewers/nearby/styled.tsx | 6 +- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap index 4f8ebe7f1..e0708c058 100644 --- a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap +++ b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap @@ -4207,11 +4207,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station - Bay 2 @@ -16688,11 +16688,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt @@ -19737,11 +19737,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station - Bay 1 @@ -30491,11 +30491,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station Bay 5 - Bay 5 @@ -38443,11 +38443,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt @@ -50633,11 +50633,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station - Bay 3 @@ -56784,11 +56784,11 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    NE 65th St & 14th Ave NE diff --git a/__tests__/components/viewers/__snapshots__/stop-schedule-viewer.ts.snap b/__tests__/components/viewers/__snapshots__/stop-schedule-viewer.ts.snap index 2b2cc5296..faea7c416 100644 --- a/__tests__/components/viewers/__snapshots__/stop-schedule-viewer.ts.snap +++ b/__tests__/components/viewers/__snapshots__/stop-schedule-viewer.ts.snap @@ -271,7 +271,7 @@ exports[`components > viewers > stop viewer should render with initial stop id a >

    Date: Wed, 13 Mar 2024 15:24:19 -0400 Subject: [PATCH 20/43] docs(StopScheduleViewer): Add comment regarding needed CSS class --- lib/components/viewers/stop-schedule-viewer.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index a247591b7..74166759e 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -194,6 +194,7 @@ class StopScheduleViewer extends Component { _renderHeader = (agencyCount: number) => { const { hideBackButton, stopData, stopId } = this.props return ( + // CSS class stop-viewer-header is needed for customizing how logos are displayed.
    {/* Back button */} {!hideBackButton && ( From 4574726babf6174be151eb491bffd8a40a10fb72 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:21:57 -0400 Subject: [PATCH 21/43] refactor(types): Extract common type for zoomToPlace callback. --- lib/components/map/point-popup.tsx | 10 +++------- lib/components/util/types.ts | 7 +++++++ lib/components/viewers/nearby/nearby-view.tsx | 4 ++-- lib/components/viewers/stop-schedule-viewer.tsx | 10 ++-------- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/lib/components/map/point-popup.tsx b/lib/components/map/point-popup.tsx index 8422aff0d..d9e902dbd 100644 --- a/lib/components/map/point-popup.tsx +++ b/lib/components/map/point-popup.tsx @@ -1,8 +1,8 @@ import { connect } from 'react-redux' -import { MapRef, useMap } from 'react-map-gl' import { Popup } from '@opentripplanner/base-map' import { Search } from '@styled-icons/fa-solid/Search' import { useIntl, WrappedComponentProps } from 'react-intl' +import { useMap } from 'react-map-gl' import FromToLocationPicker from '@opentripplanner/from-to-location-picker' import React, { useCallback } from 'react' import styled from 'styled-components' @@ -11,7 +11,7 @@ import type { Location } from '@opentripplanner/types' import * as mapActions from '../../actions/map' import { Icon } from '../util/styledIcon' import { renderCoordinates } from '../../util/i18n' -import { SetLocationHandler } from '../util/types' +import { SetLocationHandler, ZoomToPlaceHandler } from '../util/types' const PopupTitleWrapper = styled.div` align-items: flex-start; @@ -36,11 +36,7 @@ type Props = { clearMapPopupLocation: () => void mapPopupLocation: Location setLocation: SetLocationHandler - zoomToPlace: ( - map?: MapRef, - place?: { lat: number; lon: number }, - zoom?: number - ) => void + zoomToPlace: ZoomToPlaceHandler } & WrappedComponentProps const DEFAULT_ZOOM = 15 diff --git a/lib/components/util/types.ts b/lib/components/util/types.ts index 019bb4cf0..fb08c83ae 100644 --- a/lib/components/util/types.ts +++ b/lib/components/util/types.ts @@ -5,6 +5,7 @@ import { Route, Stop } from '@opentripplanner/types' +import { MapRef } from 'react-map-gl' export interface StopTimeTrip { blockId?: string @@ -101,3 +102,9 @@ export type SetViewedRouteHandler = (route?: ViewedRouteState) => void export type SetViewedStopHandler = (payload: Stop | null) => void export type SetLocationHandler = (payload: MapLocationActionArg) => void + +export type ZoomToPlaceHandler = ( + map?: MapRef, + place?: { lat: number; lon: number }, + zoom?: number +) => void diff --git a/lib/components/viewers/nearby/nearby-view.tsx b/lib/components/viewers/nearby/nearby-view.tsx index 2eedd3564..1fba96eef 100644 --- a/lib/components/viewers/nearby/nearby-view.tsx +++ b/lib/components/viewers/nearby/nearby-view.tsx @@ -8,7 +8,7 @@ import * as apiActions from '../../../actions/api' import * as mapActions from '../../../actions/map' import * as uiActions from '../../../actions/ui' import { AppReduxState } from '../../../util/state-types' -import { SetLocationHandler } from '../../util/types' +import { SetLocationHandler, ZoomToPlaceHandler } from '../../util/types' import Loading from '../../narrative/loading' import MobileContainer from '../../mobile/container' import MobileNavigationBar from '../../mobile/navigation-bar' @@ -42,7 +42,7 @@ type Props = { setLocation: SetLocationHandler setMainPanelContent: (content: number) => void setViewedNearbyCoords: (location: Location | null) => void - zoomToPlace: (map: MapRef, stopData: Location) => void + zoomToPlace: ZoomToPlaceHandler } const getNearbyItem = (place: any) => { diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index 74166759e..13d15c038 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -16,7 +16,7 @@ import * as mapActions from '../../actions/map' import { AppReduxState } from '../../util/state-types' import { IconWithText } from '../util/styledIcon' import { isBlank, navigateBack } from '../../util/ui' -import { StopData } from '../util/types' +import { StopData, ZoomToPlaceHandler } from '../util/types' import { stopIsFlex } from '../../util/viewer' import { TransitOperatorConfig } from '../../util/config-types' import PageTitle from '../util/page-title' @@ -42,12 +42,7 @@ interface Props { stopData?: StopData stopId?: string transitOperators: TransitOperatorConfig[] - // TODO refactor - zoomToPlace: ( - map?: MapRef, - place?: { lat: number; lon: number }, - zoom?: number - ) => void + zoomToPlace: ZoomToPlaceHandler } interface State { @@ -140,7 +135,6 @@ class StopScheduleViewer extends Component { } } - // TODO: refactor getOperator = () => { const { stopData, transitOperators } = this.props From 9ea8750deed8ceb8dcbdfbf87fbab452803bcde5 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:49:29 -0400 Subject: [PATCH 22/43] fix(nearby/styled): Prevent logos to be taller than the text. --- lib/components/viewers/nearby/styled.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/components/viewers/nearby/styled.tsx b/lib/components/viewers/nearby/styled.tsx index 94687f32f..7e028686e 100644 --- a/lib/components/viewers/nearby/styled.tsx +++ b/lib/components/viewers/nearby/styled.tsx @@ -46,6 +46,10 @@ export const CardTitle = styled.p` font-weight: 600; gap: 0.5ch; margin: 0; + /* Prevent svg and images to be taller than the text. */ + svg { + max-height: 1em; + } ` export const CardSubheader = styled.p` From fc066009f271e0be08d8dc1498747101bf26d4bb Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:54:24 -0400 Subject: [PATCH 23/43] refactor(StopCardHeader): Undo renaming an import. --- lib/components/viewers/nearby/stop-card-header.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index a1f785724..27f0ce0aa 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -13,7 +13,7 @@ import Link from '../../util/link' import OperatorLogo from '../../util/operator-logo' import Strong from '../../util/strong-text' -import { CardBody, CardHeader, CardTitle as NearbyCardTitle } from './styled' +import { CardBody, CardHeader, CardTitle } from './styled' type Props = { actionIcon: ComponentType @@ -83,7 +83,7 @@ const StopCardHeader = ({ <> {/* @ts-expect-error The 'as' prop in styled-components is not listed for TypeScript. */} - + {transitOperators ?.filter((to) => Array.from(agencies).includes(to.agencyId)) // Second pass to remove duplicates based on name @@ -95,7 +95,7 @@ const StopCardHeader = ({ ))} {stopData.name} - +
    From c07589add3f4feb26f422a309bb3bc5c859f7dfd Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 18 Mar 2024 17:18:33 -0400 Subject: [PATCH 24/43] refactor(Link): Render an anchor without using react-router link. --- .../viewers/__snapshots__/nearby-view.js.snap | 957 +++++++++++------- lib/components/util/link.tsx | 44 +- 2 files changed, 587 insertions(+), 414 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap index e0708c058..ccfd9633f 100644 --- a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap +++ b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap @@ -4211,7 +4211,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station - Bay 2 @@ -9936,7 +9936,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -

    - - - +
    + + + +
    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt @@ -16717,7 +16742,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -

    - - - +

    + + + +
    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station - Bay 1 @@ -26082,7 +26132,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -

    - - - +
    + + + +
    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station Bay 5 - Bay 5 @@ -35418,7 +35493,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -

    - - - +
    + + + +
    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt @@ -43158,7 +43258,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -

    - - - +
    + + + +
    viewers > nearby view renders proper scooter dates 1`] = ` >

    Roosevelt Station - Bay 3 @@ -50662,7 +50787,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -

    - - - +
    + + + +
    viewers > nearby view renders proper scooter dates 1`] = ` >

    viewers > nearby view renders proper scooter dates 1`] = ` >

    NE 65th St & 14th Ave NE @@ -61707,7 +61857,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -

    - - - +
    + + + +
    { +interface Props extends OwnProps, HTMLAttributes { + href: string +} + +interface OwnProps { to: string toParams?: Record } @@ -12,28 +18,20 @@ interface Props extends HTMLAttributes { * Renders an anchor element with specified path and query params, * that preserves other existing query params. */ -const Link = ({ - children, - className, - style, - to, - toParams -}: Props): JSX.Element => ( - +const Link = ({ children, className, href, style }: Props): JSX.Element => ( + {children} - + ) -const DummyLink = ({ children, to }: Props): JSX.Element => ( - // Do not render router links in snapshots. - {children} -) +// connect to the redux store so that the search params get updated in timely fashion. + +const mapStateToProps = (state: AppReduxState, ownProps: OwnProps) => { + const queryParams = combineQueryParams(ownProps.toParams) + const href = `#${ownProps.to}${isBlank(queryParams) ? '' : `?${queryParams}`}` + return { + href + } +} -export default typeof jest !== 'undefined' ? DummyLink : Link +export default connect(mapStateToProps)(Link) From 6c261e48697423fdf28bb6123f2e9db90c2590db Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 19 Mar 2024 13:59:16 -0400 Subject: [PATCH 25/43] refactor(Link): Pass props directly to anchor tag using redux. --- .../viewers/__snapshots__/nearby-view.js.snap | 805 ++++++++---------- lib/components/util/{link.tsx => link.ts} | 14 +- 2 files changed, 367 insertions(+), 452 deletions(-) rename lib/components/util/{link.tsx => link.ts} (70%) diff --git a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap index ccfd9633f..9590206b9 100644 --- a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap +++ b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap @@ -9936,7 +9936,7 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -
    - - - - + + + + viewers > nearby view renders proper scooter dates 1`] = ` iconVerticalAlign="middle" iconViewBox="0 0 448 512" > - - - - - - - - components.StopViewer.viewSchedule - + /> + + + + -
    -
    -
    - -
    + + + + components.StopViewer.viewSchedule + + +
    + + +
    viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -
    - - - - + + + + viewers > nearby view renders proper scooter dates 1`] = ` iconVerticalAlign="middle" iconViewBox="0 0 448 512" > - - - - - - - - components.StopViewer.viewSchedule - + /> + + + + -
    -
    -
    - -
    + + + + components.StopViewer.viewSchedule + + +
    + + +
    viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -
    - - - - + + + + viewers > nearby view renders proper scooter dates 1`] = ` iconVerticalAlign="middle" iconViewBox="0 0 448 512" > - - - - - - - - components.StopViewer.viewSchedule - + /> + + + + -
    -
    -
    - -
    + + + + components.StopViewer.viewSchedule + + +
    + + +
    viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -
    - - - - + + + + viewers > nearby view renders proper scooter dates 1`] = ` iconVerticalAlign="middle" iconViewBox="0 0 448 512" > - - - - - - - - components.StopViewer.viewSchedule - + /> + + + + -
    -
    -
    - -
    + + + + components.StopViewer.viewSchedule + + +
    + + +
    viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -
    - - - - + + + + viewers > nearby view renders proper scooter dates 1`] = ` iconVerticalAlign="middle" iconViewBox="0 0 448 512" > - - - - - - - - components.StopViewer.viewSchedule - + /> + + + + -
    -
    -
    - -
    + + + + components.StopViewer.viewSchedule + + +
    + + + viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -
    - - - - + + + + viewers > nearby view renders proper scooter dates 1`] = ` iconVerticalAlign="middle" iconViewBox="0 0 448 512" > - - - - - - - - components.StopViewer.viewSchedule - + /> + + + + -
    -
    -
    - -
    + + + + components.StopViewer.viewSchedule + + + + + + viewers > nearby view renders proper scooter dates 1`] = ` > components.StopViewer.displayStopId - viewers > nearby view renders proper scooter dates 1`] = ` } } > - viewers > nearby view renders proper scooter dates 1`] = ` } } > - - -
    - - - - + + + + viewers > nearby view renders proper scooter dates 1`] = ` iconVerticalAlign="middle" iconViewBox="0 0 448 512" > - - - - - - - - components.StopViewer.viewSchedule - + /> + + + + -
    -
    -
    - -
    + + + + components.StopViewer.viewSchedule + + + + + + { - href: string -} - -interface OwnProps { +interface OwnProps extends HTMLAttributes { to: string toParams?: Record } @@ -18,11 +14,7 @@ interface OwnProps { * Renders an anchor element with specified path and query params, * that preserves other existing query params. */ -const Link = ({ children, className, href, style }: Props): JSX.Element => ( - - {children} - -) +const Link: ComponentType = 'a' as unknown as ComponentType // connect to the redux store so that the search params get updated in timely fashion. From 09bb5f35948bf03e6959b3dd67914649bda86f53 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Tue, 19 Mar 2024 15:38:08 -0400 Subject: [PATCH 26/43] chore: update otp-ui --- package.json | 15 ++++++---- yarn.lock | 82 ++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index cf67fb467..1db856ca4 100644 --- a/package.json +++ b/package.json @@ -43,14 +43,14 @@ "@bugsnag/plugin-react": "^7.17.0", "@floating-ui/react": "^0.19.2", "@opentripplanner/base-map": "^3.0.17", - "@opentripplanner/core-utils": "^11.3.0", + "@opentripplanner/core-utils": "^11.3.1", "@opentripplanner/endpoints-overlay": "^2.0.12", "@opentripplanner/from-to-location-picker": "^2.1.12", - "@opentripplanner/geocoder": "^2.1.0", + "@opentripplanner/geocoder": "^2.2.0", "@opentripplanner/humanize-distance": "^1.2.0", "@opentripplanner/icons": "^2.0.10", - "@opentripplanner/itinerary-body": "^5.2.7", - "@opentripplanner/location-field": "^2.0.15", + "@opentripplanner/itinerary-body": "^5.2.8", + "@opentripplanner/location-field": "^2.0.16", "@opentripplanner/location-icon": "^1.4.1", "@opentripplanner/map-popup": "^3.0.3", "@opentripplanner/otp2-tile-overlay": "^1.0.11", @@ -60,8 +60,8 @@ "@opentripplanner/stop-viewer-overlay": "^2.0.8", "@opentripplanner/stops-overlay": "^5.2.2", "@opentripplanner/transit-vehicle-overlay": "^4.0.9", - "@opentripplanner/transitive-overlay": "^3.0.17", - "@opentripplanner/trip-details": "^5.0.10", + "@opentripplanner/transitive-overlay": "^3.0.18", + "@opentripplanner/trip-details": "^5.0.11", "@opentripplanner/trip-form": "^3.5.2", "@opentripplanner/trip-viewer-overlay": "^2.0.8", "@opentripplanner/vehicle-rental-overlay": "^2.1.7", @@ -208,6 +208,9 @@ "react": ">=15.0.0", "react-dom": ">=15.0.0" }, + "resolutions": { + "@leeoniya/ufuzzy": "npm:dry-uninstall" + }, "jest": { "moduleNameMapper": { "i18n/(.*)\\.yml$": "__tests__/test-utils/mock-data/empty-yml.js", diff --git a/yarn.lock b/yarn.lock index 4d8fda3fb..5f8fae9c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2053,6 +2053,11 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@leeoniya/ufuzzy@^1.0.14", "@leeoniya/ufuzzy@npm:dry-uninstall": + version "0.3.0" + resolved "https://registry.yarnpkg.com/dry-uninstall/-/dry-uninstall-0.3.0.tgz#29847a27ed3b3bb94e6212547a677e37f4427011" + integrity sha512-b8h94RVpETWkVV59x62NsY++79bM7Si6Dxq7a4iVxRcJU3ZJJ4vaiC7wUZwM8WDK0ySRL+i+T/1SMAzbJLejYA== + "@mapbox/geojson-rewind@^0.5.1": version "0.5.2" resolved "https://registry.yarnpkg.com/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz#591a5d71a9cd1da1a0bf3420b3bea31b0fc7946a" @@ -2387,7 +2392,7 @@ maplibre-gl "^2.1.9" react-map-gl "^7.0.15" -"@opentripplanner/core-utils@^11.2.3", "@opentripplanner/core-utils@^11.3.0": +"@opentripplanner/core-utils@^11.2.3": version "11.3.0" resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-11.3.0.tgz#5d9764bf2684d78e24911d20435b6488ab7a9632" integrity sha512-qAx/z3GK1ccGYDlSHUJ5zPbD8FUCG+rDHwMSbtKgj1ciBxVL3KpcnfBGQAzcTysBRlw1lDmeondAGd5fsykuBg== @@ -2405,6 +2410,24 @@ lodash.isequal "^4.5.0" qs "^6.9.1" +"@opentripplanner/core-utils@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-11.3.1.tgz#e42d95aa3d6b6cd167e8c63222c726d2ae6ebdd6" + integrity sha512-yUE5jmhO5UlA40Ik7jwSoxsqkiAdG40h+/BwmjfLaRjelD6weuzqQkEz7qSCbLo9M3ylchZmcwtaAFZX8xVh/g== + dependencies: + "@conveyal/lonlat" "^1.4.1" + "@mapbox/polyline" "^1.1.0" + "@opentripplanner/geocoder" "^2.0.1" + "@styled-icons/foundation" "^10.34.0" + "@turf/along" "^6.0.1" + chroma-js "^2.4.2" + date-fns "^2.28.0" + date-fns-tz "^1.2.2" + graphql "^16.6.0" + lodash.clonedeep "^4.5.0" + lodash.isequal "^4.5.0" + qs "^6.9.1" + "@opentripplanner/endpoints-overlay@^2.0.12": version "2.0.12" resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-2.0.12.tgz#d320c23777008550f350f614798c4a6300f4dba6" @@ -2424,7 +2447,7 @@ "@opentripplanner/location-icon" "^1.4.1" flat "^5.0.2" -"@opentripplanner/geocoder@^2.0.1", "@opentripplanner/geocoder@^2.1.0": +"@opentripplanner/geocoder@^2.0.1": version "2.1.0" resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-2.1.0.tgz#43bd5848edabedc9aa5d7fbc564f4f50e480f4d1" integrity sha512-AfWjB4cXQZHqdWNckmKQKABIoYMeYntTwGr7EURCCsxQsZlBs2E3MoFTz4N495UsMgWpKkoaY/JyWioXFnCLhQ== @@ -2434,6 +2457,17 @@ isomorphic-mapzen-search "^1.6.1" lodash.memoize "^4.1.2" +"@opentripplanner/geocoder@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-2.2.0.tgz#071f91664e898b06705c781fddd4f75dfcb3cc3f" + integrity sha512-V41WOCIpvwLRHEchBg3vRzGOOxoI+SdxczLGgLGPJ/Q/XiqaTqUgsK8WUv+hAUAGYNxI7jZbx7zdC2pXCH0m4w== + dependencies: + "@conveyal/geocoder-arcgis-geojson" "^0.0.3" + "@conveyal/lonlat" "^1.4.1" + "@leeoniya/ufuzzy" "^1.0.14" + isomorphic-mapzen-search "^1.6.1" + lodash.memoize "^4.1.2" + "@opentripplanner/humanize-distance@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-1.2.0.tgz#71cf5d5d1b756adef15300edbba0995ccd4b35ee" @@ -2447,7 +2481,7 @@ "@opentripplanner/core-utils" "^11.2.3" prop-types "^15.7.2" -"@opentripplanner/itinerary-body@^5.2.6", "@opentripplanner/itinerary-body@^5.2.7": +"@opentripplanner/itinerary-body@^5.2.6": version "5.2.7" resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-5.2.7.tgz#f12d52540a912e14ff3b704604de06608301ff35" integrity sha512-aCjhCAlFfMNbjLQc2jG8CPch7TipQcUnzunYxT2ZvwIH5/CUGVjuO0BXxKpXAb3p53eeRwe2VoHoynoMiM7Iuw== @@ -2465,10 +2499,28 @@ react-resize-detector "^4.2.1" string-similarity "^4.0.4" -"@opentripplanner/location-field@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-2.0.15.tgz#c13d59967d9335b3be96a02fb8f3b992a7814eac" - integrity sha512-Gg1Y9SLt3UO3+7KvwJc7gQWxSD03h8XSaDo5yz06IfMfqu6H1dBM1bZvFWuEWZwQwwpH9o7wrMw9ygraH2UMIg== +"@opentripplanner/itinerary-body@^5.2.8": + version "5.2.8" + resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-5.2.8.tgz#12cb356dc3c203af9603541d46b2c30f0cc8dbe1" + integrity sha512-D/gH80BlTR/J4XYyhVG234J5qVatzYwEjObHUY01u17X+uUgRcl05zv9vNSLx9Va0UDxPc7oR+Ro5VnkW+QkKA== + dependencies: + "@opentripplanner/core-utils" "^11.2.3" + "@opentripplanner/humanize-distance" "^1.2.0" + "@opentripplanner/icons" "^2.0.9" + "@opentripplanner/location-icon" "^1.4.1" + "@styled-icons/fa-solid" "^10.34.0" + "@styled-icons/foundation" "^10.34.0" + date-fns "^2.28.0" + date-fns-tz "^1.2.2" + flat "^5.0.2" + react-animate-height "^3.0.4" + react-resize-detector "^4.2.1" + string-similarity "^4.0.4" + +"@opentripplanner/location-field@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-2.0.16.tgz#4b20f3065b77b8781efaa0094bc8d351e600c835" + integrity sha512-XLMSa92VOe8Ii5M1AuLf57qQfWYcRG6F0+OhIesh11l/R2xqOql68zyucpkKfH0HHBSKqahYDAYSk4nkkyEviA== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.3" "@opentripplanner/core-utils" "^11.2.3" @@ -2568,10 +2620,10 @@ "@opentripplanner/icons" "^2.0.9" flat "^5.0.2" -"@opentripplanner/transitive-overlay@^3.0.17": - version "3.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-3.0.17.tgz#d2b1cc21d7770fe45dc663970925456d6e10fede" - integrity sha512-9j3D5IKhMih/2tayBS+dR2BSAnlJOWayE0f0nxGttj94Q7i+rcsZ1iQ9Z5okA+dRd9oBCdzPiDqCnSfCakOMfA== +"@opentripplanner/transitive-overlay@^3.0.18": + version "3.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-3.0.18.tgz#c225564355125a0978061704fa4de3e899902869" + integrity sha512-zOcxhNszDg/87flr3SZ9J53YA5L0P+YFHQc/so4ceuaVXfkCkuaE6WvubG0FFM7Dj7JE+vqbjqz5bEYI6Xj8qg== dependencies: "@mapbox/polyline" "^1.1.1" "@opentripplanner/base-map" "^3.0.16" @@ -2585,10 +2637,10 @@ "@turf/midpoint" "^6.5.0" lodash.isequal "^4.5.0" -"@opentripplanner/trip-details@^5.0.10": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-5.0.10.tgz#52d0666b57462c58f42459468fe951c26a9e0ffe" - integrity sha512-P0QcqZlia7bDGqfyGfw6l86yHbwEeE6HpgBHX1xlXjtvwvxjckV+zsHcQ/ZExMNmyagX3dYery+EMbzy8/vvVA== +"@opentripplanner/trip-details@^5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-5.0.11.tgz#a672874a042ffcf89bb52a792ea8810545646c9e" + integrity sha512-oRu4o2zJxkm494iWvdwDnSqQ1VxZPlUMDp+FoJpC8S+H43RpHiCB6g/eutA2Ytigy/koezO9dpDveI6a6rPtQA== dependencies: "@opentripplanner/core-utils" "^11.2.3" "@styled-icons/fa-solid" "^10.34.0" From 2a40c6555af779f97f1b48d62a6ffc6b17134fd7 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Wed, 20 Mar 2024 12:23:12 -0400 Subject: [PATCH 27/43] use query to set focus point --- lib/components/form/connect-location-field.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/components/form/connect-location-field.js b/lib/components/form/connect-location-field.js index d7091ee9b..b2903b339 100644 --- a/lib/components/form/connect-location-field.js +++ b/lib/components/form/connect-location-field.js @@ -80,6 +80,14 @@ export default function connectLocationField( } const geocoderConfig = config.geocoder + if (query.to) { + const { lat, lon } = query.to + geocoderConfig.focusPoint = { lat, lon } + } + if (query.from) { + const { lat, lon } = query.from + geocoderConfig.focusPoint = { lat, lon } + } if (currentPosition?.coords) { const { latitude: lat, longitude: lon } = currentPosition.coords geocoderConfig.focusPoint = { lat, lon } From 5f452de481b7d90e7113be4755c2fc7929553b6d Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Wed, 20 Mar 2024 12:39:24 -0400 Subject: [PATCH 28/43] fix launching with params --- lib/components/form/connect-location-field.js | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/components/form/connect-location-field.js b/lib/components/form/connect-location-field.js index b2903b339..d1d8cf2ea 100644 --- a/lib/components/form/connect-location-field.js +++ b/lib/components/form/connect-location-field.js @@ -80,17 +80,19 @@ export default function connectLocationField( } const geocoderConfig = config.geocoder - if (query.to) { - const { lat, lon } = query.to - geocoderConfig.focusPoint = { lat, lon } - } - if (query.from) { - const { lat, lon } = query.from - geocoderConfig.focusPoint = { lat, lon } - } - if (currentPosition?.coords) { - const { latitude: lat, longitude: lon } = currentPosition.coords - geocoderConfig.focusPoint = { lat, lon } + if (geocoderConfig) { + if (query.to && query.to?.lat && query.to?.lon) { + const { lat, lon } = query.to + geocoderConfig.focusPoint = { lat, lon } + } + if (query.from && query.from?.lat && query.from?.lon) { + const { lat, lon } = query.from + geocoderConfig.focusPoint = { lat, lon } + } + if (currentPosition?.coords) { + const { latitude: lat, longitude: lon } = currentPosition.coords + geocoderConfig.focusPoint = { lat, lon } + } } const stateToProps = { From ebdbd0fe6b0d6186569b27990c7c4d6bcda8c1ed Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 20 Mar 2024 16:05:47 -0400 Subject: [PATCH 29/43] refactor(StopCardHeader): Don't show map pin for operators missing a logo --- .../viewers/nearby/stop-card-header.tsx | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index 27f0ce0aa..629e189f1 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -1,6 +1,5 @@ import { connect } from 'react-redux' import { FormattedMessage, useIntl } from 'react-intl' -import { MapPin } from '@styled-icons/fa-solid' import { Search } from '@styled-icons/fa-solid/Search' import { TransitOperator } from '@opentripplanner/types' import React, { ComponentType } from 'react' @@ -29,30 +28,34 @@ type Props = { const Operator = ({ operator }: { operator?: TransitOperator }) => { const intl = useIntl() - return operator && operator.logo ? ( - /* Span with agency classname allows optional contrast/customization in user - config for logos with poor contrast. Class name is hyphenated agency name - e.g. "sound-transit" */ - - - - ) : ( - - ) + ) + return operator.logo ? ( + // Span with agency classname allows optional contrast/customization in user + // config for logos with poor contrast. Class name is hyphenated agency name + // e.g. "sound-transit" + + + + ) : ( + // If operator exists but logo is missing, + // we still need to announce the operator name to screen readers. + {operatorLogoAriaLabel} + ) + } } const StopCardHeader = ({ From 6c9576124ae85a1a5a0ed03612f215e767c3c206 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Thu, 21 Mar 2024 13:10:01 -0400 Subject: [PATCH 30/43] move refresh button left --- lib/components/admin/field-trip-list.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/components/admin/field-trip-list.js b/lib/components/admin/field-trip-list.js index 927886016..f74dbe841 100644 --- a/lib/components/admin/field-trip-list.js +++ b/lib/components/admin/field-trip-list.js @@ -201,16 +201,16 @@ class FieldTripList extends Component { Field Trip Requests {' '} + - Date: Mon, 25 Mar 2024 14:07:17 -0400 Subject: [PATCH 31/43] test(percy): Update element type --- percy/percy.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/percy/percy.test.js b/percy/percy.test.js index 3eb50e101..5a4de831e 100644 --- a/percy/percy.test.js +++ b/percy/percy.test.js @@ -261,8 +261,8 @@ async function executeTest(page, isMobile, isCallTaker) { // Open schedule view await page.waitForTimeout(2000) - await page.waitForSelector('button.link-button.pull-right') - await page.click('button.link-button.pull-right') + await page.waitForSelector('a.pull-right') + await page.click('a.pull-right') await page.waitForTimeout(500) // Request a schedule for a specific valid date in the past, // so it is different than today and triggers a full render of the schedule. From 4c515fd978e4098f071b7bff6154196412f4e5a1 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 25 Mar 2024 14:18:00 -0400 Subject: [PATCH 32/43] refactor(Link): Remove the passed to and toParams props from rendered HTML. Also update snapshots. --- .../viewers/__snapshots__/nearby-view.js.snap | 42 ------------------- lib/components/util/link.ts | 5 ++- 2 files changed, 4 insertions(+), 43 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap index 9590206b9..0c14b3001 100644 --- a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap +++ b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap @@ -9961,12 +9961,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` "fontSize": "small", } } - to="/schedule/kcm:36940" - toParams={ - Object { - "entityId": undefined, - } - } > viewers > nearby view renders proper scooter dates 1`] = ` "fontSize": "small", } } - to="/schedule/40:990003" - toParams={ - Object { - "entityId": undefined, - } - } > viewers > nearby view renders proper scooter dates 1`] = ` "fontSize": "small", } } - to="/schedule/kcm:16430" - toParams={ - Object { - "entityId": undefined, - } - } > viewers > nearby view renders proper scooter dates 1`] = ` "fontSize": "small", } } - to="/schedule/kcm:16440" - toParams={ - Object { - "entityId": undefined, - } - } > viewers > nearby view renders proper scooter dates 1`] = ` "fontSize": "small", } } - to="/schedule/40:990004" - toParams={ - Object { - "entityId": undefined, - } - } > viewers > nearby view renders proper scooter dates 1`] = ` "fontSize": "small", } } - to="/schedule/kcm:23561" - toParams={ - Object { - "entityId": undefined, - } - } > viewers > nearby view renders proper scooter dates 1`] = ` "fontSize": "small", } } - to="/schedule/kcm:36931" - toParams={ - Object { - "entityId": undefined, - } - } > { const queryParams = combineQueryParams(ownProps.toParams) const href = `#${ownProps.to}${isBlank(queryParams) ? '' : `?${queryParams}`}` return { - href + href, + // Remove the passed to and toParams props from the rendered HTML. + to: undefined, + toParams: undefined } } From a07fd5c41a4e8a60ae854e051f9c8acd60b1d7ee Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 25 Mar 2024 14:41:32 -0400 Subject: [PATCH 33/43] refactor(Link): Remove dispatch from rendered HTML, update snapshots --- .../components/viewers/__snapshots__/nearby-view.js.snap | 7 ------- lib/components/util/link.ts | 3 ++- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap index 0c14b3001..cdb1cbc46 100644 --- a/__tests__/components/viewers/__snapshots__/nearby-view.js.snap +++ b/__tests__/components/viewers/__snapshots__/nearby-view.js.snap @@ -9953,7 +9953,6 @@ exports[`components > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` > viewers > nearby view renders proper scooter dates 1`] = ` > { } } -export default connect(mapStateToProps)(Link) +// Pass an empty object as mapDispatchToProps to remove dispatch from the rendered HTML. +export default connect(mapStateToProps, {})(Link) From ae57ea540c922d50c15e165b34988db7fa8f0805 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:13:15 -0400 Subject: [PATCH 34/43] fix(StopScheduleViewer): Prevent zoom back when accessing from nearby view. --- lib/actions/map.js | 2 +- lib/components/viewers/stop-schedule-viewer.tsx | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/actions/map.js b/lib/actions/map.js index 8d87bbdec..17cb19a69 100644 --- a/lib/actions/map.js +++ b/lib/actions/map.js @@ -32,7 +32,7 @@ export function setMapCenter(map /* MapRef */, location) { */ export function zoomToPlace(map /* MapRef */, place, zoom) { return function () { - if (place && map) { + if (place && place.lat !== undefined && place.lon !== undefined && map) { map.flyTo({ center: [place.lon, place.lat], zoom: zoom || 17 }) } } diff --git a/lib/components/viewers/stop-schedule-viewer.tsx b/lib/components/viewers/stop-schedule-viewer.tsx index 13d15c038..51f85c967 100644 --- a/lib/components/viewers/stop-schedule-viewer.tsx +++ b/lib/components/viewers/stop-schedule-viewer.tsx @@ -128,6 +128,12 @@ class StopScheduleViewer extends Component { this._findStopTimesForDate(this.state.date) } + componentDidUpdate() { + // FIXME: This is to prevent zooming the map back to entire itinerary + // when accessing the schedule viewer from the nearby view. + this._zoomToStop() + } + _findStopTimesForDate = (date: string) => { const { findStopTimesForStop, stopId } = this.props if (stopId) { From 5de6235ad6e43a354f8c37bcd7744db718c5d216 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:42:34 -0400 Subject: [PATCH 35/43] fix(StopCardHeader): Support API responses without agency gtfsId. --- lib/components/viewers/nearby/stop-card-header.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index 629e189f1..9750aeddf 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -73,7 +73,10 @@ const StopCardHeader = ({ const agencies = stopData.stoptimesForPatterns?.reduce>( // @ts-expect-error The agency type is not yet compatible with OTP2 - (prev, cur) => prev.add(cur.pattern.route.agency.gtfsId), + (prev, cur) => { + const agencyGtfsId = cur.pattern.route.agency?.gtfsId + return agencyGtfsId ? prev.add(agencyGtfsId) : prev + }, new Set() ) || new Set() const zoomButtonText = onZoomClick From 2581e169d841447dcecd61b75fdc7f613af9c4c2 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:48:10 -0400 Subject: [PATCH 36/43] refactor(StopCardHeader): Move ts waiver to the correct place. --- lib/components/viewers/nearby/stop-card-header.tsx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/components/viewers/nearby/stop-card-header.tsx b/lib/components/viewers/nearby/stop-card-header.tsx index 9750aeddf..beab553d4 100644 --- a/lib/components/viewers/nearby/stop-card-header.tsx +++ b/lib/components/viewers/nearby/stop-card-header.tsx @@ -71,14 +71,11 @@ const StopCardHeader = ({ }: Props): JSX.Element => { const intl = useIntl() const agencies = - stopData.stoptimesForPatterns?.reduce>( + stopData.stoptimesForPatterns?.reduce>((prev, cur) => { // @ts-expect-error The agency type is not yet compatible with OTP2 - (prev, cur) => { - const agencyGtfsId = cur.pattern.route.agency?.gtfsId - return agencyGtfsId ? prev.add(agencyGtfsId) : prev - }, - new Set() - ) || new Set() + const agencyGtfsId = cur.pattern.route.agency?.gtfsId + return agencyGtfsId ? prev.add(agencyGtfsId) : prev + }, new Set()) || new Set() const zoomButtonText = onZoomClick ? intl.formatMessage({ id: 'components.StopViewer.zoomToStop' From 44611e713fb8b484c5e14875642373799db6eb92 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Tue, 26 Mar 2024 10:52:36 -0400 Subject: [PATCH 37/43] chore: deduplicate yarn.lock --- yarn.lock | 74 ++++--------------------------------------------------- 1 file changed, 5 insertions(+), 69 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5f8fae9c4..26188c0aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2392,25 +2392,7 @@ maplibre-gl "^2.1.9" react-map-gl "^7.0.15" -"@opentripplanner/core-utils@^11.2.3": - version "11.3.0" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-11.3.0.tgz#5d9764bf2684d78e24911d20435b6488ab7a9632" - integrity sha512-qAx/z3GK1ccGYDlSHUJ5zPbD8FUCG+rDHwMSbtKgj1ciBxVL3KpcnfBGQAzcTysBRlw1lDmeondAGd5fsykuBg== - dependencies: - "@conveyal/lonlat" "^1.4.1" - "@mapbox/polyline" "^1.1.0" - "@opentripplanner/geocoder" "^2.0.1" - "@styled-icons/foundation" "^10.34.0" - "@turf/along" "^6.0.1" - chroma-js "^2.4.2" - date-fns "^2.28.0" - date-fns-tz "^1.2.2" - graphql "^16.6.0" - lodash.clonedeep "^4.5.0" - lodash.isequal "^4.5.0" - qs "^6.9.1" - -"@opentripplanner/core-utils@^11.3.1": +"@opentripplanner/core-utils@^11.2.3", "@opentripplanner/core-utils@^11.3.1": version "11.3.1" resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-11.3.1.tgz#e42d95aa3d6b6cd167e8c63222c726d2ae6ebdd6" integrity sha512-yUE5jmhO5UlA40Ik7jwSoxsqkiAdG40h+/BwmjfLaRjelD6weuzqQkEz7qSCbLo9M3ylchZmcwtaAFZX8xVh/g== @@ -2447,17 +2429,7 @@ "@opentripplanner/location-icon" "^1.4.1" flat "^5.0.2" -"@opentripplanner/geocoder@^2.0.1": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-2.1.0.tgz#43bd5848edabedc9aa5d7fbc564f4f50e480f4d1" - integrity sha512-AfWjB4cXQZHqdWNckmKQKABIoYMeYntTwGr7EURCCsxQsZlBs2E3MoFTz4N495UsMgWpKkoaY/JyWioXFnCLhQ== - dependencies: - "@conveyal/geocoder-arcgis-geojson" "^0.0.3" - "@conveyal/lonlat" "^1.4.1" - isomorphic-mapzen-search "^1.6.1" - lodash.memoize "^4.1.2" - -"@opentripplanner/geocoder@^2.2.0": +"@opentripplanner/geocoder@^2.0.1", "@opentripplanner/geocoder@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-2.2.0.tgz#071f91664e898b06705c781fddd4f75dfcb3cc3f" integrity sha512-V41WOCIpvwLRHEchBg3vRzGOOxoI+SdxczLGgLGPJ/Q/XiqaTqUgsK8WUv+hAUAGYNxI7jZbx7zdC2pXCH0m4w== @@ -2481,25 +2453,7 @@ "@opentripplanner/core-utils" "^11.2.3" prop-types "^15.7.2" -"@opentripplanner/itinerary-body@^5.2.6": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-5.2.7.tgz#f12d52540a912e14ff3b704604de06608301ff35" - integrity sha512-aCjhCAlFfMNbjLQc2jG8CPch7TipQcUnzunYxT2ZvwIH5/CUGVjuO0BXxKpXAb3p53eeRwe2VoHoynoMiM7Iuw== - dependencies: - "@opentripplanner/core-utils" "^11.2.3" - "@opentripplanner/humanize-distance" "^1.2.0" - "@opentripplanner/icons" "^2.0.9" - "@opentripplanner/location-icon" "^1.4.1" - "@styled-icons/fa-solid" "^10.34.0" - "@styled-icons/foundation" "^10.34.0" - date-fns "^2.28.0" - date-fns-tz "^1.2.2" - flat "^5.0.2" - react-animate-height "^3.0.4" - react-resize-detector "^4.2.1" - string-similarity "^4.0.4" - -"@opentripplanner/itinerary-body@^5.2.8": +"@opentripplanner/itinerary-body@^5.2.6", "@opentripplanner/itinerary-body@^5.2.8": version "5.2.8" resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-5.2.8.tgz#12cb356dc3c203af9603541d46b2c30f0cc8dbe1" integrity sha512-D/gH80BlTR/J4XYyhVG234J5qVatzYwEjObHUY01u17X+uUgRcl05zv9vNSLx9Va0UDxPc7oR+Ro5VnkW+QkKA== @@ -3452,11 +3406,6 @@ dependencies: "@types/node" "*" -"@types/history@*": - version "4.7.9" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.9.tgz#1cfb6d60ef3822c589f18e70f8b12f9a28ce8724" - integrity sha512-MUc6zSmU3tEVnkQ78q0peeEjKWPUADMlC/t++2bI8WnAG2tvYRPIgHG8lWkXwqc8MsUF6Z2MOf+Mh5sazOmhiQ== - "@types/history@^4.7.11": version "4.7.11" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" @@ -3656,7 +3605,7 @@ "@types/react" "*" "@types/react-router" "*" -"@types/react-router@*": +"@types/react-router@*", "@types/react-router@^5.1.17": version "5.1.20" resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== @@ -3664,14 +3613,6 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react-router@^5.1.17": - version "5.1.17" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.17.tgz#087091006213b11042f39570e5cd414863693968" - integrity sha512-RNSXOyb3VyRs/EOGmjBhhGKTbnN6fHWvy5FNLzWfOWOGjgVUKqJZXfpKzLmgoU8h6Hj8mpALj/mbXQASOb92wQ== - dependencies: - "@types/history" "*" - "@types/react" "*" - "@types/react@*", "@types/react@17": version "17.0.38" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.38.tgz#f24249fefd89357d5fa71f739a686b8d7c7202bd" @@ -17949,12 +17890,7 @@ type@^1.0.1: resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== - -type@^2.7.2: +type@^2.5.0, type@^2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== From 9b3878bb8abf4e670e333e66f2cc06d0daac10f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 16:35:21 +0000 Subject: [PATCH 38/43] chore(deps-dev): bump express from 4.17.3 to 4.19.2 Bumps [express](https://github.com/expressjs/express) from 4.17.3 to 4.19.2. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.17.3...4.19.2) --- updated-dependencies: - dependency-name: express dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 165 ++++++++++++++++++++++++++++----------------------- 2 files changed, 91 insertions(+), 76 deletions(-) diff --git a/package.json b/package.json index 1db856ca4..b17006b81 100644 --- a/package.json +++ b/package.json @@ -181,7 +181,7 @@ "eslint-plugin-sort-keys-fix": "^1.1.1", "eslint-plugin-typescript-sort-keys": "^1.8.0", "execa": "^5.1.1", - "express": "^4.17.3", + "express": "^4.19.2", "har-express": "^1.1.0", "husky": "^6.0.0", "jest-transform-stub": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index 26188c0aa..c7380eae9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5121,21 +5121,23 @@ bn.js@^5.0.0, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" - integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.7" - raw-body "2.4.3" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" type-is "~1.6.18" + unpipe "1.0.0" bonjour@^3.5.0: version "3.5.0" @@ -6237,10 +6239,10 @@ content-disposition@0.5.4, content-disposition@^0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== conventional-changelog-angular@^5.0.0: version "5.0.12" @@ -6309,10 +6311,10 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== copy-concurrently@^1.0.0: version "1.0.5" @@ -7031,6 +7033,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -7049,10 +7056,10 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-file@^1.0.0: version "1.0.0" @@ -8235,38 +8242,39 @@ expect@^27.1.0: jest-message-util "^27.1.0" jest-regex-util "^27.0.6" -express@^4.17.1, express@^4.17.3: - version "4.17.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" - integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== +express@^4.17.1, express@^4.19.2: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.2" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.2" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.7" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" + send "0.18.0" + serve-static "1.15.0" setprototypeof "1.2.0" - statuses "~1.5.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -8482,17 +8490,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-cache-dir@^2.1.0: @@ -9497,15 +9505,15 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" http-errors@~1.6.2: @@ -13277,10 +13285,10 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" @@ -14876,10 +14884,12 @@ qrcode-terminal@^0.12.0: resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@6.9.7: - version "6.9.7" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" - integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" qs@^6.10.3, qs@^6.3.0, qs@^6.5.1, qs@^6.9.1: version "6.11.2" @@ -14997,13 +15007,13 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" - integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" - http-errors "1.8.1" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -16351,24 +16361,24 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "2.0.0" mime "1.6.0" ms "2.1.3" - on-finished "~2.3.0" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" serialize-javascript@^4.0.0: version "4.0.0" @@ -16416,15 +16426,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.18.0" serve@^13.0.2: version "13.0.2" @@ -16936,7 +16946,12 @@ static-module@^3.0.2: static-eval "^2.0.5" through2 "~2.0.3" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= From 33adb99262485370d542e79a9edea6a6355a7f3b Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 26 Mar 2024 14:14:45 -0400 Subject: [PATCH 39/43] fix(FavoritePlaceScreen): Clone user place before setting up the screen. --- lib/components/user/places/favorite-place-screen.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/components/user/places/favorite-place-screen.js b/lib/components/user/places/favorite-place-screen.js index e6c83b57b..fbad867a0 100644 --- a/lib/components/user/places/favorite-place-screen.js +++ b/lib/components/user/places/favorite-place-screen.js @@ -117,7 +117,8 @@ class FavoritePlaceScreen extends Component { const { pendingSave } = this.state // Get the places as shown (and not as retrieved from db), so that the index passed from URL applies // (indexes 0 and 1 are for Home and Work locations). - const place = this._getPlaceToEdit(loggedInUser) + // Clone the place to avoid improper state mutation in the lines below. + const place = clone(this._getPlaceToEdit(loggedInUser)) // For controls, the value must be at least ''. if (place?.name === null) { place.name = '' @@ -154,7 +155,7 @@ class FavoritePlaceScreen extends Component { id: 'components.SubNav.myAccount' }) : '']} /> Date: Tue, 26 Mar 2024 14:18:59 -0500 Subject: [PATCH 40/43] feat(connected-itinerary-body): make alert collapse configurable --- example-config.yml | 2 ++ lib/components/narrative/line-itin/connected-itinerary-body.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/example-config.yml b/example-config.yml index 02f0318e7..e5384dc17 100644 --- a/example-config.yml +++ b/example-config.yml @@ -347,6 +347,8 @@ itinerary: renderRouteNamesInBlocks: true # Whether the mode icons should be colored as well fillModeIcons: true + # Allow user to collapse alerts in itinerary body + collapseAlerts: true # If multiple fares are returned by OTP, assign names to the fare keys here #fareKeyNameMap: # regular: "Transit Fare" diff --git a/lib/components/narrative/line-itin/connected-itinerary-body.js b/lib/components/narrative/line-itin/connected-itinerary-body.js index 12c51897a..355a0b549 100644 --- a/lib/components/narrative/line-itin/connected-itinerary-body.js +++ b/lib/components/narrative/line-itin/connected-itinerary-body.js @@ -83,6 +83,7 @@ class ConnectedItineraryBody extends Component { const clonedItinerary = clone(itinerary) const showViewTripButton = !config?.itinerary?.hideViewTripButton + const collapseAlerts = config?.itinerary?.collapseAlerts // Support OTP1 flex messages in Trip Details // Adding empty pickupBookingInfo and dropOffBookingInfo objects @@ -116,6 +117,7 @@ class ConnectedItineraryBody extends Component { Date: Tue, 26 Mar 2024 15:27:37 -0500 Subject: [PATCH 41/43] Update variable name --- example-config.yml | 2 +- .../narrative/line-itin/connected-itinerary-body.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/example-config.yml b/example-config.yml index e5384dc17..a1f034489 100644 --- a/example-config.yml +++ b/example-config.yml @@ -348,7 +348,7 @@ itinerary: # Whether the mode icons should be colored as well fillModeIcons: true # Allow user to collapse alerts in itinerary body - collapseAlerts: true + allowUserAlertCollapsing: true # If multiple fares are returned by OTP, assign names to the fare keys here #fareKeyNameMap: # regular: "Transit Fare" diff --git a/lib/components/narrative/line-itin/connected-itinerary-body.js b/lib/components/narrative/line-itin/connected-itinerary-body.js index 355a0b549..287a9852a 100644 --- a/lib/components/narrative/line-itin/connected-itinerary-body.js +++ b/lib/components/narrative/line-itin/connected-itinerary-body.js @@ -83,7 +83,7 @@ class ConnectedItineraryBody extends Component { const clonedItinerary = clone(itinerary) const showViewTripButton = !config?.itinerary?.hideViewTripButton - const collapseAlerts = config?.itinerary?.collapseAlerts + const allowUserAlertCollapsing = config?.itinerary?.allowUserAlertCollapsing // Support OTP1 flex messages in Trip Details // Adding empty pickupBookingInfo and dropOffBookingInfo objects @@ -117,7 +117,7 @@ class ConnectedItineraryBody extends Component { Date: Thu, 28 Mar 2024 09:18:48 -0500 Subject: [PATCH 42/43] add allowUserAlertCollapsing to config type --- lib/util/config-types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/util/config-types.ts b/lib/util/config-types.ts index 8d8be2fca..76d2d6fb8 100644 --- a/lib/util/config-types.ts +++ b/lib/util/config-types.ts @@ -243,6 +243,7 @@ export interface ItineraryCostWeights { } export interface ItineraryConfig { + allowUserAlertCollapsing: boolean costs?: ItineraryCostConfig customBatchUiBackground?: boolean defaultFareType?: FareProductSelector From 012258f8394ea74599923eeda5076019614ddd72 Mon Sep 17 00:00:00 2001 From: Amy Corson <115499534+amy-corson-ibigroup@users.noreply.github.com> Date: Thu, 28 Mar 2024 10:00:16 -0500 Subject: [PATCH 43/43] Update lib/util/config-types.ts Co-authored-by: Binh Dam <56846598+binh-dam-ibigroup@users.noreply.github.com> --- lib/util/config-types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/util/config-types.ts b/lib/util/config-types.ts index 76d2d6fb8..68eae7240 100644 --- a/lib/util/config-types.ts +++ b/lib/util/config-types.ts @@ -243,7 +243,7 @@ export interface ItineraryCostWeights { } export interface ItineraryConfig { - allowUserAlertCollapsing: boolean + allowUserAlertCollapsing?: boolean costs?: ItineraryCostConfig customBatchUiBackground?: boolean defaultFareType?: FareProductSelector