Skip to content

Commit 9c4450a

Browse files
Merge pull request #1373 from opentripplanner/April-otpui-packages
April OTP-UI package updates
2 parents 2aa9558 + c442ef6 commit 9c4450a

File tree

5 files changed

+49
-23
lines changed

5 files changed

+49
-23
lines changed

Diff for: lib/components/narrative/default/default-itinerary.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ const {
3939
isTransitLeg
4040
} = coreUtils.itinerary
4141

42+
const { ensureAtLeastOneMinute } = coreUtils.time
43+
4244
// Styled components
4345
const LegIconWrapper = styled.div`
4446
display: inline-block;
@@ -88,7 +90,11 @@ const ITINERARY_ATTRIBUTES = [
8890
alias: 'best',
8991
id: 'duration',
9092
order: 0,
91-
render: (itinerary) => <FormattedDuration duration={itinerary.duration} />
93+
render: (itinerary) => (
94+
<FormattedDuration
95+
duration={ensureAtLeastOneMinute(itinerary.duration)}
96+
/>
97+
)
9298
},
9399
{
94100
alias: 'departureTime',
@@ -173,7 +179,11 @@ const ITINERARY_ATTRIBUTES = [
173179
// FIXME: For CAR mode, walk time considers driving time.
174180
<>
175181
<FormattedDuration
176-
duration={itinerary.walkTime}
182+
duration={
183+
itinerary.walkTime > 0
184+
? ensureAtLeastOneMinute(itinerary.walkTime)
185+
: itinerary.walkTime
186+
}
177187
includeSeconds={false}
178188
/>
179189
<LegIconWrapper noSpace>

Diff for: lib/components/narrative/metro/metro-itinerary.tsx

+17-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
IntlShape
1010
} from 'react-intl'
1111
import { Leaf } from '@styled-icons/fa-solid/Leaf'
12+
import coreUtils from '@opentripplanner/core-utils'
1213
import React from 'react'
1314
import styled, { keyframes } from 'styled-components'
1415

@@ -41,6 +42,8 @@ import DepartureTimesList, {
4142
import MetroItineraryRoutes from './metro-itinerary-routes'
4243
import RouteBlock from './route-block'
4344

45+
const { ensureAtLeastOneMinute } = coreUtils.time
46+
4447
// Styled components
4548
const ItineraryWrapper = styled.div.attrs((props) => {
4649
return { 'aria-label': props['aria-label'] }
@@ -232,7 +235,11 @@ class MetroItinerary extends NarrativeItinerary {
232235
aria-hidden
233236
footer={
234237
showLegDurations &&
235-
mainLeg?.duration && <FormattedDuration duration={mainLeg.duration} />
238+
mainLeg?.duration && (
239+
<FormattedDuration
240+
duration={ensureAtLeastOneMinute(mainLeg.duration)}
241+
/>
242+
)
236243
}
237244
hideLongName
238245
leg={mainLeg}
@@ -384,7 +391,7 @@ class MetroItinerary extends NarrativeItinerary {
384391
>
385392
<PrimaryInfo>
386393
<FormattedDuration
387-
duration={itinerary.duration}
394+
duration={ensureAtLeastOneMinute(itinerary.duration)}
388395
includeSeconds={false}
389396
/>
390397
</PrimaryInfo>
@@ -409,7 +416,13 @@ class MetroItinerary extends NarrativeItinerary {
409416
values={{
410417
time: (
411418
<FormattedDuration
412-
duration={itinerary.walkTime}
419+
duration={
420+
/* If the walk time is truly zero, show 0. But if the walk time is just less
421+
than a minute, round up to the nearest minute to avoid showing no walk time. */
422+
itinerary.walkTime > 0
423+
? ensureAtLeastOneMinute(itinerary.walkTime)
424+
: itinerary.walkTime
425+
}
413426
includeSeconds={false}
414427
/>
415428
)
@@ -470,7 +483,7 @@ class MetroItinerary extends NarrativeItinerary {
470483
<ItineraryGridSmall className="other-itin">
471484
<PrimaryInfo as="span">
472485
<FormattedDuration
473-
duration={itinerary.duration}
486+
duration={ensureAtLeastOneMinute(itinerary.duration)}
474487
includeSeconds={false}
475488
/>
476489
</PrimaryInfo>

Diff for: lib/components/user/monitored-trip/trip-duration-summary.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { FormattedMessage, FormattedTime } from 'react-intl'
2+
import coreUtils from '@opentripplanner/core-utils'
23
import React from 'react'
34
import styled from 'styled-components'
45

@@ -10,6 +11,8 @@ const Divider = styled.span`
1011
margin: 0 7px;
1112
`
1213

14+
const { ensureAtLeastOneMinute } = coreUtils.time
15+
1316
const TripSummary = ({ monitoredTrip }: MonitoredTripProps): JSX.Element => {
1417
const { itinerary } = monitoredTrip
1518
const { duration, endTime, startTime } = itinerary
@@ -27,7 +30,7 @@ const TripSummary = ({ monitoredTrip }: MonitoredTripProps): JSX.Element => {
2730
<InvisibleA11yLabel>, </InvisibleA11yLabel>
2831
<Divider></Divider>
2932
<span aria-hidden>
30-
<FormattedDuration duration={duration} />
33+
<FormattedDuration duration={ensureAtLeastOneMinute(duration)} />
3134
</span>
3235
</span>
3336
)

Diff for: package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@
4444
"@floating-ui/react": "^0.19.2",
4545
"@opentripplanner/base-map": "4.0.0",
4646
"@opentripplanner/building-blocks": "2.1.0",
47-
"@opentripplanner/core-utils": "12.0.2",
47+
"@opentripplanner/core-utils": "12.2.0",
4848
"@opentripplanner/endpoints-overlay": "3.1.1",
4949
"@opentripplanner/from-to-location-picker": "3.0.1",
50-
"@opentripplanner/geocoder": "^3.0.3",
50+
"@opentripplanner/geocoder": "^3.0.4",
5151
"@opentripplanner/humanize-distance": "^1.2.0",
5252
"@opentripplanner/icons": "3.0.2",
53-
"@opentripplanner/itinerary-body": "6.1.3",
53+
"@opentripplanner/itinerary-body": "6.2.0",
5454
"@opentripplanner/location-field": "3.1.3",
5555
"@opentripplanner/location-icon": "^1.4.1",
5656
"@opentripplanner/map-popup": "5.1.2",

Diff for: yarn.lock

+13-13
Original file line numberDiff line numberDiff line change
@@ -2415,10 +2415,10 @@
24152415
resolved "https://registry.yarnpkg.com/@opentripplanner/building-blocks/-/building-blocks-1.2.3.tgz#404e8f9038867d66d55f51adf8855b1326c51ed5"
24162416
integrity sha512-I0AxiZrTZu+e7+av4u0tHW2ijqpxH0AkLHrhf75BHf1Ep2FOGxaul/v+8UT18mNYiM5eHNstOX3XiXaDjtCUaw==
24172417

2418-
"@opentripplanner/core-utils@12.0.2":
2419-
version "12.0.2"
2420-
resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-12.0.2.tgz#2869b3ac3672d636d427de04e4ce8efc1a0de435"
2421-
integrity sha512-Czga518J+rQIDjXRKG+taZ75xN8GPOB5MiILHo5B/v9Z6VXz5lypDe8vDGv66pbmf8Mj62zl5Tm3AAkB/lPdIA==
2418+
"@opentripplanner/core-utils@12.2.0", "@opentripplanner/core-utils@^12.1.0":
2419+
version "12.2.0"
2420+
resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-12.2.0.tgz#0e1210a4e5565f5a1720e7ff30da54130e5d45c8"
2421+
integrity sha512-w9/H6WODI+ooe0tFctPlB9fpwnXCYOgVs7PKI9jKbNBaa39o7Z3Z+bcm9FTpNhE9K0VRcZGf99p9mk2xjbQZjA==
24222422
dependencies:
24232423
"@conveyal/lonlat" "^1.4.1"
24242424
"@mapbox/polyline" "^1.1.0"
@@ -2516,10 +2516,10 @@
25162516
isomorphic-mapzen-search "^1.6.1"
25172517
lodash.memoize "^4.1.2"
25182518

2519-
"@opentripplanner/geocoder@^3.0.3":
2520-
version "3.0.3"
2521-
resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-3.0.3.tgz#a31be41aef51d10f415343fa4564c4959c99422f"
2522-
integrity sha512-0I+HgqLpqwBI65hUKCWhDhRJHS7GKwo1JjvDVVCS4f0d2mjlQW3gnoHodxP7WGqiUJHhtoTtRrF8xPZeDCZ0/w==
2519+
"@opentripplanner/geocoder@^3.0.4":
2520+
version "3.0.4"
2521+
resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-3.0.4.tgz#99f4a6ac66cf850f5e2defffd0d04bf3ca2b98f7"
2522+
integrity sha512-MDNKlDQacmddYHZnNm7TPNWXrPXspxWnmYFa2IL4V1t2KVdQ1Z3U6yurEsIsw9TaD00sa0KlbNo9M0h9lXqWCg==
25232523
dependencies:
25242524
"@conveyal/geocoder-arcgis-geojson" "^0.0.3"
25252525
"@conveyal/lonlat" "^1.4.1"
@@ -2548,12 +2548,12 @@
25482548
"@opentripplanner/core-utils" "^12.0.0"
25492549
prop-types "^15.7.2"
25502550

2551-
"@opentripplanner/itinerary-body@6.1.3":
2552-
version "6.1.3"
2553-
resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-6.1.3.tgz#0d60f1bfe29f74dacf03a9abfd5d23b4bc10c04e"
2554-
integrity sha512-glwxm0NyPjDnHBR4W7AmsIvrU7bW52xs2e9Qy1Q6jP7ghnK8Vq3u44vrEw8ZlZllkIqe9kVhEXrSXUu5NPfRRA==
2551+
"@opentripplanner/itinerary-body@6.2.0":
2552+
version "6.2.0"
2553+
resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-6.2.0.tgz#f00ff6076083bff71952177e9d52a98ccc69a098"
2554+
integrity sha512-ktf9XbXMOEdZxlEGXGaukhseV9XEGMqIcuUM0CsjEKMUT8L55E6VO4ZP1lzItG4+7wrBgWEaxMOSBCWkM/1DNA==
25552555
dependencies:
2556-
"@opentripplanner/core-utils" "^12.0.0"
2556+
"@opentripplanner/core-utils" "^12.1.0"
25572557
"@opentripplanner/humanize-distance" "^1.2.0"
25582558
"@opentripplanner/icons" "^3.0.0"
25592559
"@opentripplanner/location-icon" "^1.4.1"

0 commit comments

Comments
 (0)