From 0ff58e81b03d75d1516c1e269ae9f1d159a1bdb4 Mon Sep 17 00:00:00 2001 From: thornbill Date: Sun, 3 Nov 2024 10:54:30 -0500 Subject: [PATCH] Backport pull request #6265 from jellyfin-web/release-10.10.z Add support for plugin revisions with bad timestamps Original-merge: 71ab6fea5d2d43a45adce9fb7b92ce603d9b447d Merged-by: thornbill Backported-by: Joshua M. Boniface --- .../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) {