| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- 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<VersionHistoryItemProps> = ({ 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)
 
-       ? (
 
-         <div className="shrink-0 px-1 border bg-white border-[rgba(0,0,0,0.08)] rounded-[5px] truncate">
 
-           {version}
 
-         </div>
 
-       )
 
-       : null
 
-   )
 
-   return (
 
-     <div
 
-       className={cn(
 
-         'flex items-center p-2 h-12 text-xs font-medium text-gray-700 justify-between',
 
-         formattedVersion === selectedVersion ? '' : 'hover:bg-gray-100',
 
-         formattedVersion === WorkflowVersion.Draft ? 'cursor-not-allowed' : 'cursor-pointer',
 
-       )}
 
-       onClick={() => item.version !== WorkflowVersion.Draft && onClick(item)}
 
-     >
 
-       <div className='flex flex-col gap-1 py-2'>
 
-         <span className="text-left">{formatTime(formattedVersion === WorkflowVersion.Draft ? item.updated_at : item.created_at)}</span>
 
-         <span className="text-left">{t('workflow.panel.createdBy')}  {item.created_by.name}</span>
 
-       </div>
 
-       {renderVersionLabel(formattedVersion)}
 
-     </div>
 
-   )
 
- }
 
- export default React.memo(VersionHistoryItem)
 
 
  |