diff options
Diffstat (limited to 'src/components/common/DateDistance.tsx')
| -rw-r--r-- | src/components/common/DateDistance.tsx | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/components/common/DateDistance.tsx b/src/components/common/DateDistance.tsx new file mode 100644 index 0000000..e8bd278 --- /dev/null +++ b/src/components/common/DateDistance.tsx @@ -0,0 +1,19 @@ +import { Text } from '@umami/react-zen'; +import { formatDistanceToNow } from 'date-fns'; +import { useLocale, useTimezone } from '@/components/hooks'; +import { isInvalidDate } from '@/lib/date'; + +export function DateDistance({ date }: { date: Date }) { + const { formatTimezoneDate } = useTimezone(); + const { dateLocale } = useLocale(); + + if (isInvalidDate(date)) { + return null; + } + + return ( + <Text title={formatTimezoneDate(date?.toISOString(), 'PPPpp')}> + {formatDistanceToNow(date, { addSuffix: true, locale: dateLocale })} + </Text> + ); +} |