From a4f8f93ad9cdb27ca77dd390d482ea5f0dbcd3e7 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Tue, 13 Oct 2026 22:06:27 +1300 Subject: [PATCH] Put "and" between duration units if there's only 2 --- src/web/pug/time.pug | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/web/pug/time.pug b/src/web/pug/time.pug index 1d71c22..ed37bec 100644 --- a/src/web/pug/time.pug +++ b/src/web/pug/time.pug @@ -67,7 +67,6 @@ html(lang="en") if style !== "R" p #[span#remaining.remaining]#[span#direction] #[span#tick.tick] script. - document.body.classList.add("yes-script") const WIDTH = !{WIDTH} const timestamp = !{timestamp} const style = "!{style}" @@ -104,6 +103,7 @@ html(lang="en") st.style.fontSize = Math.floor(parseInt(st.style.fontSize) * WIDTH / l) + "px"; } } + document.body.classList.add("yes-script") let frame = 0 function updateTimeRemaining() { @@ -116,15 +116,17 @@ html(lang="en") } let difference = Math.abs(timeForRemaining.getTime() - now.getTime()) + // Temporal.Duration isn't Baseline https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Duration let foundSignificantField = false - let remainingText = UNITS.map(([unit, duration], index) => { + const remainingTextParts = UNITS.map(([unit, duration], index) => { const multiplier = Math.floor(difference / duration) difference -= multiplier * duration if (multiplier > 0 || foundSignificantField) { foundSignificantField = true return multiplier + "\u00a0" + unit + (multiplier !== 1 ? "s" : "") } - }).filter(s => s).join(", ") + }).filter(s => s) + const remainingText = remainingTextParts.length === 2 ? remainingTextParts.join(" and ") : remainingTextParts.join(", ") if (remainingText) { remaining.textContent = remainingText direction.textContent =