import React from 'react' import dayjs from 'dayjs' import { useTranslation } from 'react-i18next' import { WorkflowVersion } from '../types' import cn from '@/utils/classnames' import type { VersionHistory } from '@/types/workflow' type VersionHistoryItemProps = { item: VersionHistory selectedVersion: string onClick: (item: VersionHistory) => void curIdx: number page: number } const formatVersion = (version: string, curIdx: number, page: number): string => { if (curIdx === 0 && page === 1) return WorkflowVersion.Draft if (curIdx === 1 && page === 1) return WorkflowVersion.Latest try { const date = new Date(version) if (isNaN(date.getTime())) return version // format as YYYY-MM-DD HH:mm:ss return date.toISOString().slice(0, 19).replace('T', ' ') } catch { return version } } const VersionHistoryItem: React.FC = ({ item, selectedVersion, onClick, curIdx, page }) => { const { t } = useTranslation() const formatTime = (time: number) => dayjs.unix(time).format('YYYY-MM-DD HH:mm:ss') const formattedVersion = formatVersion(item.version, curIdx, page) const renderVersionLabel = (version: string) => ( (version === WorkflowVersion.Draft || version === WorkflowVersion.Latest) ? (
{version}
) : null ) return (
item.version !== WorkflowVersion.Draft && onClick(item)} >
{formatTime(formattedVersion === WorkflowVersion.Draft ? item.updated_at : item.created_at)} {t('workflow.panel.createdBy')} {item.created_by.name}
{renderVersionLabel(formattedVersion)}
) } export default React.memo(VersionHistoryItem)