From 356c96c8e5d0710fe1d147121b851ff66e0f8687 Mon Sep 17 00:00:00 2001 From: buildwithricky Date: Fri, 31 Oct 2025 21:26:48 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=90=9B(frontend)=20fix=20doc=20timest?= =?UTF-8?q?amp=20display?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implemented the logic to show 'Just now' instead of '0 seconds ago' when the difference is under one second. Signed-off-by: buildwithricky --- src/frontend/apps/impress/src/hook/useDate.tsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/frontend/apps/impress/src/hook/useDate.tsx b/src/frontend/apps/impress/src/hook/useDate.tsx index 14b09dbd82..7fea5befd7 100644 --- a/src/frontend/apps/impress/src/hook/useDate.tsx +++ b/src/frontend/apps/impress/src/hook/useDate.tsx @@ -10,7 +10,7 @@ const formatDefault: DateTimeFormatOptions = { }; export const useDate = () => { - const { i18n } = useTranslation(); + const { i18n ,t } = useTranslation(); const formatDate = ( date: string, @@ -22,7 +22,19 @@ export const useDate = () => { }; const relativeDate = (date: string): string => { - return DateTime.fromISO(date).setLocale(i18n.language).toRelative() || ''; + const dateTime = DateTime.fromISO(date).setLocale(i18n.language); + const relative = dateTime.toRelative(); + if (relative) { + const diffInSeconds = Math.abs(dateTime.diffNow('seconds').seconds); + if (diffInSeconds < 1) { + return t('just now'); + } + if (relative.includes('0 seconds') || relative.includes('0 second') || + relative.match(/0\s*(second|seconde|segundo|秒)/i)) { + return t('just now'); + } + } + return relative; }; const calculateDaysLeft = (date: string, daysLimit: number): number => From 6ad843ea0597c589e201d3d8fa700e49957d6b33 Mon Sep 17 00:00:00 2001 From: buildwithricky Date: Mon, 1 Dec 2025 11:50:09 +0000 Subject: [PATCH 2/3] fixed --- .../apps/impress/src/hook/useDate.tsx | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/frontend/apps/impress/src/hook/useDate.tsx b/src/frontend/apps/impress/src/hook/useDate.tsx index 7fea5befd7..e005d9788d 100644 --- a/src/frontend/apps/impress/src/hook/useDate.tsx +++ b/src/frontend/apps/impress/src/hook/useDate.tsx @@ -22,19 +22,17 @@ export const useDate = () => { }; const relativeDate = (date: string): string => { - const dateTime = DateTime.fromISO(date).setLocale(i18n.language); - const relative = dateTime.toRelative(); - if (relative) { - const diffInSeconds = Math.abs(dateTime.diffNow('seconds').seconds); - if (diffInSeconds < 1) { - return t('just now'); - } - if (relative.includes('0 seconds') || relative.includes('0 second') || - relative.match(/0\s*(second|seconde|segundo|秒)/i)) { - return t('just now'); - } - } - return relative; + const dateToCompare = DateTime.fromISO(date); + + if (!dateToCompare.isValid) return ''; + + const dateNow = DateTime.now(); + + const differenceInSeconds = dateNow.diff(dateToCompare).as('seconds'); + + return Math.abs(differenceInSeconds) >= 5 + ? dateToCompare.toRelative({ base: dateNow, locale: i18n.language }) + : t('just now'); }; const calculateDaysLeft = (date: string, daysLimit: number): number => From 9c345a4f95f3331ee03a9240299dee5228dd95c6 Mon Sep 17 00:00:00 2001 From: buildwithricky Date: Mon, 1 Dec 2025 12:30:13 +0000 Subject: [PATCH 3/3] fixed formating --- src/frontend/apps/impress/src/hook/useDate.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/frontend/apps/impress/src/hook/useDate.tsx b/src/frontend/apps/impress/src/hook/useDate.tsx index e005d9788d..752cdced76 100644 --- a/src/frontend/apps/impress/src/hook/useDate.tsx +++ b/src/frontend/apps/impress/src/hook/useDate.tsx @@ -10,7 +10,7 @@ const formatDefault: DateTimeFormatOptions = { }; export const useDate = () => { - const { i18n ,t } = useTranslation(); + const { i18n, t } = useTranslation(); const formatDate = ( date: string, @@ -24,7 +24,9 @@ export const useDate = () => { const relativeDate = (date: string): string => { const dateToCompare = DateTime.fromISO(date); - if (!dateToCompare.isValid) return ''; + if (!dateToCompare.isValid) { + return ''; + } const dateNow = DateTime.now();