retry-log-trigger.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { useTranslation } from 'react-i18next'
  2. import {
  3. RiArrowRightSLine,
  4. RiRestartFill,
  5. } from '@remixicon/react'
  6. import Button from '@/app/components/base/button'
  7. import type { NodeTracing } from '@/types/workflow'
  8. type RetryLogTriggerProps = {
  9. nodeInfo: NodeTracing
  10. onShowRetryResultList: (detail: NodeTracing[]) => void
  11. }
  12. const RetryLogTrigger = ({
  13. nodeInfo,
  14. onShowRetryResultList,
  15. }: RetryLogTriggerProps) => {
  16. const { t } = useTranslation()
  17. const { retryDetail } = nodeInfo
  18. const handleShowRetryResultList = (e: React.MouseEvent<HTMLButtonElement>) => {
  19. e.stopPropagation()
  20. e.nativeEvent.stopImmediatePropagation()
  21. onShowRetryResultList(retryDetail || [])
  22. }
  23. return (
  24. <Button
  25. className='flex items-center justify-between mb-1 w-full'
  26. variant='tertiary'
  27. onClick={handleShowRetryResultList}
  28. >
  29. <div className='flex items-center'>
  30. <RiRestartFill className='mr-0.5 w-4 h-4 text-components-button-tertiary-text shrink-0' />
  31. {t('workflow.nodes.common.retry.retries', { num: retryDetail?.length })}
  32. </div>
  33. <RiArrowRightSLine className='w-4 h-4 text-components-button-tertiary-text shrink-0' />
  34. </Button>
  35. )
  36. }
  37. export default RetryLogTrigger