agent-result-panel.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { RiAlertFill } from '@remixicon/react'
  2. import { useTranslation } from 'react-i18next'
  3. import AgentLogItem from './agent-log-item'
  4. import AgentLogNav from './agent-log-nav'
  5. import type { AgentLogItemWithChildren } from '@/types/workflow'
  6. type AgentResultPanelProps = {
  7. agentOrToolLogItemStack: AgentLogItemWithChildren[]
  8. agentOrToolLogListMap: Record<string, AgentLogItemWithChildren[]>
  9. onShowAgentOrToolLog: (detail?: AgentLogItemWithChildren) => void
  10. }
  11. const AgentResultPanel = ({
  12. agentOrToolLogItemStack,
  13. agentOrToolLogListMap,
  14. onShowAgentOrToolLog,
  15. }: AgentResultPanelProps) => {
  16. const { t } = useTranslation()
  17. const top = agentOrToolLogItemStack[agentOrToolLogItemStack.length - 1]
  18. const list = agentOrToolLogListMap[top.id]
  19. return (
  20. <div className='bg-background-section overflow-y-auto'>
  21. <AgentLogNav
  22. agentOrToolLogItemStack={agentOrToolLogItemStack}
  23. onShowAgentOrToolLog={onShowAgentOrToolLog}
  24. />
  25. {
  26. <div className='p-2 space-y-1'>
  27. {
  28. list.map(item => (
  29. <AgentLogItem
  30. key={item.id}
  31. item={item}
  32. onShowAgentOrToolLog={onShowAgentOrToolLog}
  33. />
  34. ))
  35. }
  36. </div>
  37. }
  38. {
  39. top.hasCircle && (
  40. <div className='flex items-center mt-1 rounded-xl px-3 pr-2 border border-components-panel-border bg-components-panel-bg-blur shadow-md'>
  41. <div
  42. className='absolute inset-0 opacity-[0.4] rounded-xl'
  43. style={{
  44. background: 'linear-gradient(92deg, rgba(247, 144, 9, 0.25) 0%, rgba(255, 255, 255, 0.00) 100%)',
  45. }}
  46. ></div>
  47. <RiAlertFill className='mr-1.5 w-4 h-4 text-text-warning-secondary' />
  48. <div className='system-xs-medium text-text-primary'>
  49. {t('runLog.circularInvocationTip')}
  50. </div>
  51. </div>
  52. )
  53. }
  54. </div>
  55. )
  56. }
  57. export default AgentResultPanel