From fcb4ec153cbfb548256f443097a75dd26e203ce0 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 12 Jun 2024 20:05:46 -0700 Subject: [PATCH] pluralize --- src/lib/strings/time.ts | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/lib/strings/time.ts b/src/lib/strings/time.ts index 379f977403..73f84acff1 100644 --- a/src/lib/strings/time.ts +++ b/src/lib/strings/time.ts @@ -1,3 +1,5 @@ +import {plural} from '@lingui/macro' + const NOW = 5 const MINUTE = 60 const HOUR = MINUTE * 60 @@ -17,13 +19,24 @@ export function ago(date: number | string | Date, long = false): string { if (diffSeconds < NOW) { return `now` } else if (diffSeconds < MINUTE) { - return `${diffSeconds}${long ? ' seconds' : 's'}` + return `${diffSeconds}${ + long ? ` ${plural(diffSeconds, {one: 'second', other: 'seconds'})}` : 's' + }` } else if (diffSeconds < HOUR) { - return `${Math.floor(diffSeconds / MINUTE)}${long ? ' minutes' : 'm'}` + const diff = Math.floor(diffSeconds / MINUTE) + return `${diff}${ + long ? ` ${plural(diff, {one: 'minute', other: 'minutes'})}` : 'm' + }` } else if (diffSeconds < DAY) { - return `${Math.floor(diffSeconds / HOUR)}${long ? ' hours' : 'h'}` + const diff = Math.floor(diffSeconds / HOUR) + return `${diff}${ + long ? ` ${plural(diff, {one: 'hour', other: 'hours'})}` : 'h' + }` } else if (diffSeconds < MONTH_30) { - return `${Math.round(diffSeconds / DAY)}${long ? ' days' : 'd'}` + const diff = Math.round(diffSeconds / DAY) + return `${diff}${ + long ? ` ${plural(diff, {one: 'day', other: 'days'})}` : 'd' + }` } else { let months = diffSeconds / MONTH if (months % 1 >= 0.9) {