|
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) |
|
|