more.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import type { FC } from 'react'
  2. import { memo } from 'react'
  3. import { useTranslation } from 'react-i18next'
  4. import type { ChatItem } from '../../types'
  5. import { formatNumber } from '@/utils/format'
  6. type MoreProps = {
  7. more: ChatItem['more']
  8. }
  9. const More: FC<MoreProps> = ({
  10. more,
  11. }) => {
  12. const { t } = useTranslation()
  13. return (
  14. <div className='system-xs-regular mt-1 flex items-center text-text-quaternary opacity-0 group-hover:opacity-100'>
  15. {
  16. more && (
  17. <>
  18. <div
  19. className='mr-2 max-w-[33.3%] shrink-0 truncate'
  20. title={`${t('appLog.detail.timeConsuming')} ${more.latency}${t('appLog.detail.second')}`}
  21. >
  22. {`${t('appLog.detail.timeConsuming')} ${more.latency}${t('appLog.detail.second')}`}
  23. </div>
  24. <div
  25. className='max-w-[33.3%] shrink-0 truncate'
  26. title={`${t('appLog.detail.tokenCost')} ${formatNumber(more.tokens)}`}
  27. >
  28. {`${t('appLog.detail.tokenCost')} ${formatNumber(more.tokens)}`}
  29. </div>
  30. <div className='mx-2 shrink-0'>·</div>
  31. <div
  32. className='max-w-[33.3%] shrink-0 truncate'
  33. title={more.time}
  34. >
  35. {more.time}
  36. </div>
  37. </>
  38. )
  39. }
  40. </div>
  41. )
  42. }
  43. export default memo(More)