From 3062f0f38cf6d971d0f28215483d1d30e331c980 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Mon, 28 Oct 2024 10:10:11 -0400 Subject: [PATCH] Add support for plugin revisions with bad timestamps --- .../plugins/components/PluginRevisions.tsx | 4 ++-- src/scripts/datetime.js | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/apps/dashboard/features/plugins/components/PluginRevisions.tsx b/src/apps/dashboard/features/plugins/components/PluginRevisions.tsx index fe4c5743fc..815ac6ae05 100644 --- a/src/apps/dashboard/features/plugins/components/PluginRevisions.tsx +++ b/src/apps/dashboard/features/plugins/components/PluginRevisions.tsx @@ -9,7 +9,7 @@ import Stack from '@mui/material/Stack/Stack'; import React, { type FC } from 'react'; import MarkdownBox from 'components/MarkdownBox'; -import { parseISO8601Date, toLocaleString } from 'scripts/datetime'; +import { getDisplayDateTime } from 'scripts/datetime'; import globalize from 'lib/globalize'; import type { PluginDetails } from '../types/PluginDetails'; @@ -32,7 +32,7 @@ const PluginRevisions: FC = ({ {version.version} {version.timestamp && (<>  —  - {toLocaleString(parseISO8601Date(version.timestamp))} + {getDisplayDateTime(version.timestamp)} )} diff --git a/src/scripts/datetime.js b/src/scripts/datetime.js index d48e0e6d84..6de53c0167 100644 --- a/src/scripts/datetime.js +++ b/src/scripts/datetime.js @@ -203,12 +203,28 @@ export function toLocaleTimeString(date, options) { return date.toLocaleTimeString(); } +export function getDisplayDateTime(date) { + if (!date) { + throw new Error('date cannot be null'); + } + + if (typeof date === 'string') { + try { + date = parseISO8601Date(date, true); + } catch (err) { + return date; + } + } + + return toLocaleString(date); +} + export function getDisplayTime(date) { if (!date) { throw new Error('date cannot be null'); } - if ((typeof date).toString().toLowerCase() === 'string') { + if (typeof date === 'string') { try { date = parseISO8601Date(date, true); } catch (err) {