From 6f69c6f5209a12e1d8c54e962fcba6dc373bd7ff Mon Sep 17 00:00:00 2001 From: eduardo aleixo Date: Thu, 18 Aug 2022 12:55:42 -0300 Subject: [PATCH] fix(webapp): return empty string when range doesn't make sense (#1419) --- webapp/javascript/util/formatDate.spec.ts | 4 ++++ webapp/javascript/util/formatDate.ts | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/webapp/javascript/util/formatDate.spec.ts b/webapp/javascript/util/formatDate.spec.ts index 75a6b9e3a7..d8d5117b14 100644 --- a/webapp/javascript/util/formatDate.spec.ts +++ b/webapp/javascript/util/formatDate.spec.ts @@ -33,6 +33,10 @@ describe('FormatDate', () => { '1640090089000000000', '2021-06-21 12:34 PM - 2021-12-21 12:34 PM', ], + + // Return nothing when mixing absolute/relative + ['1624278889000000000', 'now-1h', ''], + ['now-1h', '1624278889000000000', ''], ]; test.each(cases)( diff --git a/webapp/javascript/util/formatDate.ts b/webapp/javascript/util/formatDate.ts index 170ff39226..522c954860 100644 --- a/webapp/javascript/util/formatDate.ts +++ b/webapp/javascript/util/formatDate.ts @@ -55,9 +55,18 @@ export function readableRange( const d1 = getUTCdate(parseUnixTime(from), offsetInMinutes); const d2 = getUTCdate(parseUnixTime(until), offsetInMinutes); + + if (!isValidDate(d1) || !isValidDate(d2)) { + return ''; + } + return `${format(d1, dateFormat)} - ${format(d2, dateFormat)}`; } +function isValidDate(d: Date) { + return d instanceof Date && !isNaN(d.getTime()); +} + /** * formateAsOBject() returns a Date object * based on the passed-in parameter value