| import { memo } from 'react' |
| import { useTranslation } from 'react-i18next' |
| import { useWorkflow } from '../hooks' |
| import { useStore } from '@/app/components/workflow/store' |
| import useTimestamp from '@/hooks/use-timestamp' |
|
|
| const EditingTitle = () => { |
| const { t } = useTranslation() |
| const { formatTime } = useTimestamp() |
| const { formatTimeFromNow } = useWorkflow() |
| const draftUpdatedAt = useStore(state => state.draftUpdatedAt) |
| const publishedAt = useStore(state => state.publishedAt) |
| const isSyncingWorkflowDraft = useStore(s => s.isSyncingWorkflowDraft) |
|
|
| return ( |
| <div className='flex items-center h-[18px] text-xs text-gray-500'> |
| { |
| !!draftUpdatedAt && ( |
| <> |
| {t('workflow.common.autoSaved')} {formatTime(draftUpdatedAt / 1000, 'HH:mm:ss')} |
| </> |
| ) |
| } |
| <span className='flex items-center mx-1'>路</span> |
| { |
| publishedAt |
| ? `${t('workflow.common.published')} ${formatTimeFromNow(publishedAt)}` |
| : t('workflow.common.unpublished') |
| } |
| { |
| isSyncingWorkflowDraft && ( |
| <> |
| <span className='flex items-center mx-1'>路</span> |
| {t('workflow.common.syncingData')} |
| </> |
| ) |
| } |
| </div> |
| ) |
| } |
|
|
| export default memo(EditingTitle) |
|
|