use-workflow-text-chunk.ts 711 B

1234567891011121314151617181920212223242526
  1. import { useCallback } from 'react'
  2. import produce from 'immer'
  3. import type { TextChunkResponse } from '@/types/workflow'
  4. import { useWorkflowStore } from '@/app/components/workflow/store'
  5. export const useWorkflowTextChunk = () => {
  6. const workflowStore = useWorkflowStore()
  7. const handleWorkflowTextChunk = useCallback((params: TextChunkResponse) => {
  8. const { data: { text } } = params
  9. const {
  10. workflowRunningData,
  11. setWorkflowRunningData,
  12. } = workflowStore.getState()
  13. setWorkflowRunningData(produce(workflowRunningData!, (draft) => {
  14. draft.resultTabActive = true
  15. draft.resultText += text
  16. }))
  17. }, [workflowStore])
  18. return {
  19. handleWorkflowTextChunk,
  20. }
  21. }