Merge main into PR #1386

This commit is contained in:
Sameh Khamis committed 2026-10-25 08:55:23 -07:00
commit 3cd795527c
4 files changed
+10 -1

No files matched your search

@@ -0,0 +1,3 @@
- Show a route leg of 59.5 seconds or more as 1 min. The route summary and step
cards kept seconds below 60, then rounded 59.6 s up to "60 s"
(Rudy Celekli, @rudycelekli, #1385).
+3
View File
@@ -4137,6 +4137,9 @@ and as the last line of the list, because the arrival step is among the ones
dropped. A route of exactly 200 is complete, and a roundabout exit after the dropped. A route of exactly 200 is complete, and a roundabout exit after the
200th keeps folding into it. 200th keeps folding into it.
Route duration labels select their unit after rounding seconds, switching to
minutes at 59.5 seconds; a 59.6-second leg displays as `1 min`, rather than `60 s`.
A step's card opens from its dot on the globe or from its line in the list, and A step's card opens from its dot on the globe or from its line in the list, and
the list covers every step including departure and arrival, which have no dot. the list covers every step including departure and arrival, which have no dot.
What a card needs is a resolved ground anchor: a step whose ground cell has not What a card needs is a resolved ground anchor: a step whose ground cell has not
+2
View File
@@ -851,6 +851,8 @@ test('route numbers follow the page language and never break from their unit', (
assert.equal(routeDistanceText(1500), '1.5\u00a0km'); assert.equal(routeDistanceText(1500), '1.5\u00a0km');
assert.equal(routeDistanceText(2_345_000), '2345\u00a0km'); assert.equal(routeDistanceText(2_345_000), '2345\u00a0km');
assert.equal(routeDurationText(39), '39\u00a0s'); assert.equal(routeDurationText(39), '39\u00a0s');
assert.equal(routeDurationText(59.4), '59\u00a0s');
assert.equal(routeDurationText(59.6), '1\u00a0min');
assert.equal(routeDurationText(3900), '1\u00a0h\u00a05\u00a0min'); assert.equal(routeDurationText(3900), '1\u00a0h\u00a05\u00a0min');
assert.equal(routeDurationText(7200), '2\u00a0h'); assert.equal(routeDurationText(7200), '2\u00a0h');
assert.equal(routeDistanceText(-1), ''); assert.equal(routeDistanceText(-1), '');
+2 -1
View File
@@ -131,7 +131,8 @@ export function routeDistanceText(meters) {
*/ */
export function routeDurationText(seconds) { export function routeDurationText(seconds) {
if (!Number.isFinite(seconds) || seconds < 0) return ''; if (!Number.isFinite(seconds) || seconds < 0) return '';
if (seconds < 60) return formatQuantity(Math.round(seconds), 's'); const wholeSeconds = Math.round(seconds);
if (wholeSeconds < 60) return formatQuantity(wholeSeconds, 's');
const minutes = Math.round(seconds / 60); const minutes = Math.round(seconds / 60);
if (minutes < 60) return formatQuantity(minutes, 'min'); if (minutes < 60) return formatQuantity(minutes, 'min');
const hours = formatQuantity(Math.floor(minutes / 60), 'h'); const hours = formatQuantity(Math.floor(minutes / 60), 'h');