'use client' import type { FC } from 'react' import { useTranslation } from 'react-i18next' import useTimestamp from '@/hooks/use-timestamp' type Props = { status: string executor?: string startTime?: number time?: number tokens?: number steps?: number showSteps?: boolean } const MetaData: FC = ({ status, executor, startTime, time, tokens, steps = 1, showSteps = true, }) => { const { t } = useTranslation() const { formatTime } = useTimestamp() return (
{t('meta.title', { ns: 'runLog' })}
{t('meta.status', { ns: 'runLog' })}
{status === 'running' && (
)} {status === 'succeeded' && ( SUCCESS )} {status === 'partial-succeeded' && ( PARTIAL SUCCESS )} {status === 'exception' && ( EXCEPTION )} {status === 'failed' && ( FAIL )} {status === 'stopped' && ( STOP )}
{t('meta.executor', { ns: 'runLog' })}
{status === 'running' && (
)} {status !== 'running' && ( {executor || 'N/A'} )}
{t('meta.startTime', { ns: 'runLog' })}
{status === 'running' && (
)} {status !== 'running' && ( {startTime ? formatTime(startTime, t('dateTimeFormat', { ns: 'appLog' }) as string) : '-'} )}
{t('meta.time', { ns: 'runLog' })}
{status === 'running' && (
)} {status !== 'running' && ( {time ? `${time.toFixed(3)}s` : '-'} )}
{t('meta.tokens', { ns: 'runLog' })}
{status === 'running' && (
)} {status !== 'running' && ( {`${tokens || 0} Tokens`} )}
{showSteps && (
{t('meta.steps', { ns: 'runLog' })}
{status === 'running' && (
)} {status !== 'running' && ( {steps} )}
)}
) } export default MetaData