import React, { useEffect, useState } from 'react'; import { Clock } from 'lucide-react'; import { toast } from 'sonner'; import { CopyButton } from '@/components/CopyButton'; import type { UnitType } from './constants'; import { msToUnit } from './constants'; import { useI18n } from '@/utils/chromeI18n'; import { cn } from '@/lib/utils'; interface LiveClockProps extends React.HTMLAttributes { unit: UnitType; onUseNow: (val: number) => void; } export default function LiveClock({ unit, onUseNow, className, ...props }: LiveClockProps) { const { t } = useI18n('timestamp'); const [rawTime, setRawTime] = useState(() => Date.now()); useEffect(() => { const tick = () => { setRawTime(Date.now()); }; const tickId = setInterval(tick, 200); return () => clearInterval(tickId); }, [unit]); const text = String(msToUnit(rawTime, unit)); return (
{t('timestamp:currentTs')} {text}
); }