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
+}