diff --git a/src/components/events/partials/EventsDateCell.tsx b/src/components/events/partials/EventsDateCell.tsx index 5dba355426..76d6c5ef9b 100644 --- a/src/components/events/partials/EventsDateCell.tsx +++ b/src/components/events/partials/EventsDateCell.tsx @@ -6,6 +6,7 @@ import { getFilters } from "../../../selectors/tableFilterSelectors"; import { connect } from "react-redux"; import { useAppDispatch, useAppSelector } from "../../../store"; import { fetchEvents } from "../../../slices/eventSlice"; +import { renderValidDate } from "../../../utils/dateUtils"; /** * This component renders the start date cells of events in the table view @@ -39,7 +40,7 @@ const EventsDateCell = ({ title={t("EVENTS.EVENTS.TABLE.TOOLTIP.START")} onClick={() => addFilter(row.date)} > - {t("dateFormats.date.short", { date: new Date(row.date) })} + {t("dateFormats.date.short", { date: renderValidDate(row.date) })} ); }; diff --git a/src/components/events/partials/EventsTechnicalDateCell.tsx b/src/components/events/partials/EventsTechnicalDateCell.tsx index 18871b86db..7ed2b9f73d 100644 --- a/src/components/events/partials/EventsTechnicalDateCell.tsx +++ b/src/components/events/partials/EventsTechnicalDateCell.tsx @@ -6,6 +6,7 @@ import { loadEventsIntoTable } from "../../../thunks/tableThunks"; import { connect } from "react-redux"; import { useAppDispatch, useAppSelector } from "../../../store"; import { fetchEvents } from "../../../slices/eventSlice"; +import { renderValidDate } from "../../../utils/dateUtils"; /** * This component renders the technical date cells of events in the table view @@ -40,7 +41,7 @@ const EventsTechnicalDateCell = ({ // @ts-expect-error TS(2554): Expected 1 arguments, but got 0. onClick={() => addFilter()} > - {t("dateFormats.date.short", { date: new Date(row.technical_start) })} + {t("dateFormats.date.short", { date: renderValidDate(row.technical_start) })} ); }; diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsCommentsTab.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsCommentsTab.tsx index 04cd70a269..482d0f3689 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsCommentsTab.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsCommentsTab.tsx @@ -17,6 +17,7 @@ import { deleteComment as deleteOneComment, deleteCommentReply, } from "../../../../slices/eventDetailsSlice"; +import { renderValidDate } from "../../../../utils/dateUtils"; /** * This component manages the comment tab of the event details modal @@ -133,7 +134,7 @@ const EventDetailsCommentsTab = ({ {/* details about the comment */}
{t("dateFormats.dateTime.short", { - dateTime: new Date(comment.creationDate), + dateTime: renderValidDate(comment.creationDate), }) || ""}

{comment.author.name}

@@ -188,7 +189,7 @@ const EventDetailsCommentsTab = ({ {/* details about the reply and reply text */}
{t("dateFormats.dateTime.short", { - dateTime: new Date(reply.creationDate), + dateTime: renderValidDate(reply.creationDate), }) || ""}

{reply.author.name}

diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsSchedulingTab.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsSchedulingTab.tsx index e6070b6c62..fb10b383aa 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsSchedulingTab.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsSchedulingTab.tsx @@ -28,6 +28,7 @@ import { changeStartHour, changeStartMinute, makeDate, + renderValidDate, } from "../../../../utils/dateUtils"; import { hours, minutes } from "../../../../configs/modalConfig"; import { @@ -225,12 +226,12 @@ const EventDetailsSchedulingTab = ({ {conflict.title} {t("dateFormats.dateTime.medium", { - dateTime: new Date(conflict.start), + dateTime: renderValidDate(conflict.start), })} {t("dateFormats.dateTime.medium", { - dateTime: new Date(conflict.end), + dateTime: renderValidDate(conflict.end), })} diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowDetails.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowDetails.tsx index 78bdd9f922..e4dd981f2d 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowDetails.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowDetails.tsx @@ -14,6 +14,7 @@ import { fetchWorkflowOperations, } from "../../../../slices/eventDetailsSlice"; import { removeNotificationWizardForm } from "../../../../slices/notificationSlice"; +import { renderValidDate } from "../../../../utils/dateUtils"; /** * This component manages the workflow details for the workflows tab of the event details modal @@ -117,7 +118,7 @@ const EventDetailsWorkflowDetails = ({ {t("dateFormats.dateTime.medium", { - dateTime: new Date(workflowData.submittedAt), + dateTime: renderValidDate(workflowData.submittedAt), })} diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrorDetails.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrorDetails.tsx index 581ad3770e..e6a4a4d4fe 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrorDetails.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrorDetails.tsx @@ -8,6 +8,7 @@ import { error_detail_style } from "../../../../utils/eventDetailsUtils"; import EventDetailsTabHierarchyNavigation from "./EventDetailsTabHierarchyNavigation"; import { useAppDispatch, useAppSelector } from "../../../../store"; import { removeNotificationWizardForm } from "../../../../slices/notificationSlice"; +import { renderValidDate } from "../../../../utils/dateUtils"; /** * This component manages the workflow error details for the workflows tab of the event details modal @@ -112,7 +113,7 @@ const EventDetailsWorkflowErrorDetails = ({ {t("dateFormats.dateTime.medium", { - dateTime: new Date(errorDetails.timestamp), + dateTime: renderValidDate(errorDetails.timestamp), })} diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrors.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrors.tsx index 9ed26c9d72..a245201577 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrors.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowErrors.tsx @@ -9,6 +9,7 @@ import EventDetailsTabHierarchyNavigation from "./EventDetailsTabHierarchyNaviga import { useAppDispatch, useAppSelector } from "../../../../store"; import { removeNotificationWizardForm } from "../../../../slices/notificationSlice"; import { fetchWorkflowErrorDetails } from "../../../../slices/eventDetailsSlice"; +import { renderValidDate } from "../../../../utils/dateUtils"; /** * This component manages the workflow errors for the workflows tab of the event details modal @@ -119,7 +120,7 @@ const EventDetailsWorkflowErrors = ({ {t("dateFormats.dateTime.medium", { - dateTime: new Date(item.timestamp), + dateTime: renderValidDate(item.timestamp), })} {item.title} diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowOperationDetails.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowOperationDetails.tsx index 28b624b5af..a5d645a96c 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowOperationDetails.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowOperationDetails.tsx @@ -7,6 +7,7 @@ import { import EventDetailsTabHierarchyNavigation from "./EventDetailsTabHierarchyNavigation"; import { useAppDispatch, useAppSelector } from "../../../../store"; import { removeNotificationWizardForm } from "../../../../slices/notificationSlice"; +import { renderValidDate } from "../../../../utils/dateUtils"; /** * This component manages the workflow operation details for the workflows tab of the event details modal @@ -132,7 +133,7 @@ const EventDetailsWorkflowOperationDetails = ({ {t("dateFormats.dateTime.medium", { - dateTime: new Date(operationDetails.started), + dateTime: renderValidDate(operationDetails.started), })} @@ -146,7 +147,7 @@ const EventDetailsWorkflowOperationDetails = ({ {t("dateFormats.dateTime.medium", { - dateTime: new Date(operationDetails.completed), + dateTime: renderValidDate(operationDetails.completed), })} diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowTab.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowTab.tsx index bee90b8f4d..f126dea4db 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowTab.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowTab.tsx @@ -26,6 +26,7 @@ import { updateWorkflow, } from "../../../../slices/eventDetailsSlice"; import { removeNotificationWizardForm } from "../../../../slices/notificationSlice"; +import { renderValidDate } from "../../../../utils/dateUtils"; /** * This component manages the workflows tab of the event details modal @@ -213,7 +214,7 @@ const EventDetailsWorkflowTab = ({ {item.submitter} {t("dateFormats.dateTime.medium", { - dateTime: new Date(item.submitted), + dateTime: renderValidDate(item.submitted), })} {t(item.status)} diff --git a/src/components/events/partials/ModalTabsAndPages/NewSourcePage.tsx b/src/components/events/partials/ModalTabsAndPages/NewSourcePage.tsx index f245e08f04..63a2c3fe37 100644 --- a/src/components/events/partials/ModalTabsAndPages/NewSourcePage.tsx +++ b/src/components/events/partials/ModalTabsAndPages/NewSourcePage.tsx @@ -35,6 +35,7 @@ import { changeStartHourMultiple, changeStartMinute, changeStartMinuteMultiple, + renderValidDate, } from "../../../../utils/dateUtils"; import { useAppDispatch, useAppSelector } from "../../../../store"; import { Recording, fetchRecordings } from "../../../../slices/recordingSlice"; @@ -76,7 +77,7 @@ const NewSourcePage = ({ const user = useAppSelector(state => getUserInformation(state)); const inputDevices = useAppSelector(state => getRecordings(state)); - const [conflicts, setConflicts] = useState<{title: string, start: number, end: number}[]>([]); + const [conflicts, setConflicts] = useState<{title: string, start: string, end: string}[]>([]); useEffect(() => { // Load recordings that can be used for input @@ -115,12 +116,12 @@ const NewSourcePage = ({ {conflict.title} {t("dateFormats.dateTime.medium", { - dateTime: new Date(conflict.start), + dateTime: renderValidDate(conflict.start), })} {t("dateFormats.dateTime.medium", { - dateTime: new Date(conflict.end), + dateTime: renderValidDate(conflict.end), })} diff --git a/src/components/events/partials/wizards/NewEventSummary.tsx b/src/components/events/partials/wizards/NewEventSummary.tsx index c352c61308..9cf80ada4f 100644 --- a/src/components/events/partials/wizards/NewEventSummary.tsx +++ b/src/components/events/partials/wizards/NewEventSummary.tsx @@ -14,6 +14,7 @@ import { translateOverrideFallback } from "../../../../utils/utils"; import { useAppSelector } from "../../../../store"; import { FormikProps } from "formik"; import { TransformedAcl } from "../../../../slices/aclDetailsSlice"; +import { renderValidDate } from "../../../../utils/dateUtils"; /** * This component renders the summary page for new events in the new event wizard. @@ -181,7 +182,7 @@ const NewEventSummary = ({ {t("dateFormats.date.short", { - date: new Date(formik.values.startDate), + date: renderValidDate(formik.values.startDate), })} diff --git a/src/components/shared/RenderDate.tsx b/src/components/shared/RenderDate.tsx index 7bb4afded3..4fa3ad55b4 100644 --- a/src/components/shared/RenderDate.tsx +++ b/src/components/shared/RenderDate.tsx @@ -1,8 +1,9 @@ import { useTranslation } from "react-i18next"; +import { renderValidDate } from "../../utils/dateUtils"; const RenderDate: React.FC<{ date: string }> = ({ date }) => { const { t } = useTranslation(); - return <>{t("dateFormats.dateTime.short", { dateTime: new Date(date) })}; + return <>{t("dateFormats.dateTime.short", { dateTime: renderValidDate(date) })}; }; export default RenderDate; diff --git a/src/components/shared/TableFilters.tsx b/src/components/shared/TableFilters.tsx index a6c81f433b..22e7de2d29 100644 --- a/src/components/shared/TableFilters.tsx +++ b/src/components/shared/TableFilters.tsx @@ -24,6 +24,7 @@ import { getResourceType } from "../../selectors/tableSelectors"; import { useHotkeys } from "react-hotkeys-hook"; import moment from "moment"; import { useAppDispatch, useAppSelector } from "../../store"; +import { renderValidDate } from "../../utils/dateUtils"; /** * This component renders the table filters in the upper right corner of the table @@ -309,11 +310,11 @@ const TableFilters = ({ {t(filter.label).substr(0, 40)}: {t("dateFormats.date.short", { - date: new Date(filter.value.split("/")[0]), + date: renderValidDate(filter.value.split("/")[0]), })} - {t("dateFormats.date.short", { - date: new Date(filter.value.split("/")[1]), + date: renderValidDate(filter.value.split("/")[1]), })} diff --git a/src/components/shared/wizard/RenderField.tsx b/src/components/shared/wizard/RenderField.tsx index 7780f36342..cf64864435 100644 --- a/src/components/shared/wizard/RenderField.tsx +++ b/src/components/shared/wizard/RenderField.tsx @@ -10,6 +10,7 @@ import RenderDate from "../RenderDate"; import { parseISO } from "date-fns"; import { FieldProps } from "formik"; import { MetadataField } from "../../../slices/eventSlice"; +import { renderValidDate } from "../../../utils/dateUtils"; const childRef = React.createRef(); /** @@ -420,7 +421,7 @@ const EditableSingleValueTime = ({ ) : (
setEditMode(true)} className="show-edit"> - {t("dateFormats.dateTime.short", { dateTime: new Date(text) }) || ""} + {t("dateFormats.dateTime.short", { dateTime: renderValidDate(text) }) || ""}
diff --git a/src/components/systems/partials/JobsSubmittedCell.tsx b/src/components/systems/partials/JobsSubmittedCell.tsx index b560255aa5..5d148bc87f 100644 --- a/src/components/systems/partials/JobsSubmittedCell.tsx +++ b/src/components/systems/partials/JobsSubmittedCell.tsx @@ -1,5 +1,6 @@ import React from "react"; import { useTranslation } from "react-i18next"; +import { renderValidDate } from "../../../utils/dateUtils"; /** * This component renders the submitted date cells of jobs in the table view @@ -11,7 +12,7 @@ const JobsSubmittedCell = ({ return ( - {t("dateFormats.dateTime.short", { dateTime: new Date(row.submitted) })} + {t("dateFormats.dateTime.short", { dateTime: renderValidDate(row.submitted) })} ); }; diff --git a/src/components/systems/partials/MeanRunTimeCell.tsx b/src/components/systems/partials/MeanRunTimeCell.tsx index 952b26c5ff..43a9193cb2 100644 --- a/src/components/systems/partials/MeanRunTimeCell.tsx +++ b/src/components/systems/partials/MeanRunTimeCell.tsx @@ -1,5 +1,6 @@ import React from "react"; import { useTranslation } from "react-i18next"; +import { renderValidDate } from "../../../utils/dateUtils"; /** * This component renders the mean run time cells of systems in the table view @@ -11,7 +12,7 @@ const MeanRunTimeCell = ({ return ( - {t("dateFormats.time.medium", { time: new Date(row.meanRunTime) })} + {t("dateFormats.time.medium", { time: renderValidDate(row.meanRunTime) })} ); };