import { Dayjs } from 'dayjs';
import React, { useEffect, useState } from 'react';
import { toDate } from '../../lib/date.js';
import Tooltip, { TooltipProps } from '../Tooltip/Tooltip.js';
export interface Props {
date: Dayjs | Date | number | string;
tooltipPlacement?: TooltipProps['placement'];
delay?: TooltipProps['delay'];
}
/**
* Component to render a date or timestamp as relative time.
*
* @example
*
*/
export default function Timestamp({ date, tooltipPlacement = 'bottom-end', delay = 250 }: Props) {
const [dateObj] = useState(() => toDate(date));
const [relativeTime, setRelativeTime] = useState(dateObj.fromNow(true));
useEffect(() => {
const fn = () => setRelativeTime(toDate(date).fromNow(true));
const interval = setInterval(fn, 60_000);
return () => clearInterval(interval);
}, [date]);
return (
{relativeTime}
);
}