diff --git a/ui/src/common/DateField.jsx b/ui/src/common/DateField.jsx index fab15b53c..dce24a2b9 100644 --- a/ui/src/common/DateField.jsx +++ b/ui/src/common/DateField.jsx @@ -1,10 +1,11 @@ import React from 'react' +import { isDateSet } from '../utils/validations' import { DateField as RADateField } from 'react-admin' export const DateField = (props) => { const { record, source } = props const value = record?.[source] - if (value === '0001-01-01T00:00:00Z' || value === null) return null + if (!isDateSet(value)) return null return } diff --git a/ui/src/common/LoveButton.jsx b/ui/src/common/LoveButton.jsx index e1196439a..c940acf12 100644 --- a/ui/src/common/LoveButton.jsx +++ b/ui/src/common/LoveButton.jsx @@ -7,6 +7,7 @@ import { makeStyles } from '@material-ui/core/styles' import { useToggleLove } from './useToggleLove' import { useRecordContext } from 'react-admin' import config from '../config' +import { isDateSet } from '../utils/validations' const useStyles = makeStyles({ love: { @@ -49,7 +50,7 @@ export const LoveButton = ({ disabled={disabled || loading || record.missing} className={classes.love} title={ - record.starredAt && record.starredAt !== '0001-01-01T00:00:00Z' + isDateSet(record.starredAt) ? new Date(record.starredAt).toLocaleString() : undefined } diff --git a/ui/src/common/RatingField.jsx b/ui/src/common/RatingField.jsx index fd21f21e0..f92b0d948 100644 --- a/ui/src/common/RatingField.jsx +++ b/ui/src/common/RatingField.jsx @@ -2,6 +2,7 @@ import React, { useCallback } from 'react' import PropTypes from 'prop-types' import Rating from '@material-ui/lab/Rating' import { makeStyles } from '@material-ui/core/styles' +import { isDateSet } from '../utils/validations' import StarBorderIcon from '@material-ui/icons/StarBorder' import clsx from 'clsx' import { useRating } from './useRating' @@ -48,7 +49,7 @@ export const RatingField = ({ stopPropagation(e)} title={ - record.ratedAt && record.ratedAt !== '0001-01-01T00:00:00Z' + isDateSet(record.ratedAt) ? new Date(record.ratedAt).toLocaleString() : undefined } diff --git a/ui/src/utils/validations.js b/ui/src/utils/validations.js index 8b163c156..792726e70 100644 --- a/ui/src/utils/validations.js +++ b/ui/src/utils/validations.js @@ -10,3 +10,16 @@ export const urlValidate = (value) => { return 'ra.validation.url' } } + +export function isDateSet(date) { + if (!date) { + return false + } + if (typeof date === 'string') { + return date !== '0001-01-01T00:00:00Z' + } + if (date instanceof Date) { + return date.toISOString() !== '0001-01-01T00:00:00Z' + } + return !!date +}