import React, { useMemo } from 'react'; import dayjs from '@/utils/dayjs'; import CopyButton from '@/components/CopyButton'; import type { UnitType } from '@/config/pageTheme'; import { DATE_FORMAT, timestampPageStyles } from '@/config/pageTheme'; import { useLazyTranslation } from '@/utils/useLazyTranslation'; interface ResultViewProps { result: string; mode: 'ts2dt' | 'dt2ts'; unit: UnitType; zone: string; /** 无结果时是否渲染占位(桌面端右栏使用),默认 false(移动端单栏隐藏) */ showEmptyPlaceholder?: boolean; } const ResultView = React.memo( ({ result, mode, unit, zone, showEmptyPlaceholder = false }: ResultViewProps) => { const { t } = useLazyTranslation('timestamp'); const extraInfo = useMemo(() => { if (!result) return null; const d = mode === 'ts2dt' ? dayjs(result, DATE_FORMAT).tz(zone) : unit === 'ms' ? dayjs(Number(result)) : dayjs.unix(Number(result)); return { relative: d.fromNow(), iso: d.toISOString(), utc: d.utc().format(DATE_FORMAT) + ' UTC', }; }, [result, mode, zone, unit]); if (!result) { if (!showEmptyPlaceholder) return null; return (