@@ -472,130 +472,6 @@ export const useHandleMessageInputChange = () => {
472
472
} ;
473
473
} ;
474
474
475
- export const useSendMessage = (
476
- conversation : IClientConversation ,
477
- addNewestConversation : ( message : Message , answer ?: string ) => void ,
478
- removeLatestMessage : ( ) => void ,
479
- addNewestAnswer : ( answer : IAnswer ) => void ,
480
- removeMessagesAfterCurrentMessage : ( messageId : string ) => void ,
481
- ) => {
482
- const { setConversation } = useSetConversation ( ) ;
483
- const { conversationId } = useGetChatSearchParams ( ) ;
484
- const { handleInputChange, value, setValue } = useHandleMessageInputChange ( ) ;
485
-
486
- const { handleClickConversation } = useClickConversationCard ( ) ;
487
- const { send, answer, done, setDone } = useSendMessageWithSse ( ) ;
488
-
489
- const sendMessage = useCallback (
490
- async ( {
491
- message,
492
- currentConversationId,
493
- messages,
494
- } : {
495
- message : Message ;
496
- currentConversationId ?: string ;
497
- messages ?: Message [ ] ;
498
- } ) => {
499
- const res = await send ( {
500
- conversation_id : currentConversationId ?? conversationId ,
501
- messages : [ ...( messages ?? conversation ?. message ?? [ ] ) , message ] ,
502
- } ) ;
503
-
504
- if ( res && ( res ?. response . status !== 200 || res ?. data ?. retcode !== 0 ) ) {
505
- // cancel loading
506
- setValue ( message . content ) ;
507
- console . info ( 'removeLatestMessage111' ) ;
508
- removeLatestMessage ( ) ;
509
- } else {
510
- if ( currentConversationId ) {
511
- console . info ( '111' ) ;
512
- // new conversation
513
- handleClickConversation ( currentConversationId ) ;
514
- } else {
515
- console . info ( '222' ) ;
516
- // fetchConversation(conversationId);
517
- }
518
- }
519
- } ,
520
- [
521
- conversation ?. message ,
522
- conversationId ,
523
- handleClickConversation ,
524
- removeLatestMessage ,
525
- setValue ,
526
- send ,
527
- ] ,
528
- ) ;
529
-
530
- const handleSendMessage = useCallback (
531
- async ( message : Message ) => {
532
- if ( conversationId !== '' ) {
533
- sendMessage ( { message } ) ;
534
- } else {
535
- const data = await setConversation ( message . content ) ;
536
- if ( data . retcode === 0 ) {
537
- const id = data . data . id ;
538
- sendMessage ( { message, currentConversationId : id } ) ;
539
- }
540
- }
541
- } ,
542
- [ conversationId , setConversation , sendMessage ] ,
543
- ) ;
544
-
545
- const { regenerateMessage } = useRegenerateMessage ( {
546
- removeMessagesAfterCurrentMessage,
547
- sendMessage,
548
- messages : conversation . message ,
549
- } ) ;
550
-
551
- useEffect ( ( ) => {
552
- // #1289
553
- if ( answer . answer && answer ?. conversationId === conversationId ) {
554
- addNewestAnswer ( answer ) ;
555
- }
556
- } , [ answer , addNewestAnswer , conversationId ] ) ;
557
-
558
- useEffect ( ( ) => {
559
- // #1289 switch to another conversion window when the last conversion answer doesn't finish.
560
- if ( conversationId ) {
561
- setDone ( true ) ;
562
- }
563
- } , [ setDone , conversationId ] ) ;
564
-
565
- const handlePressEnter = useCallback (
566
- ( documentIds : string [ ] ) => {
567
- if ( trim ( value ) === '' ) return ;
568
- const id = uuid ( ) ;
569
-
570
- addNewestConversation ( {
571
- content : value ,
572
- doc_ids : documentIds ,
573
- id,
574
- role : MessageType . User ,
575
- } ) ;
576
- if ( done ) {
577
- setValue ( '' ) ;
578
- handleSendMessage ( {
579
- id,
580
- content : value . trim ( ) ,
581
- role : MessageType . User ,
582
- doc_ids : documentIds ,
583
- } ) ;
584
- }
585
- } ,
586
- [ addNewestConversation , handleSendMessage , done , setValue , value ] ,
587
- ) ;
588
-
589
- return {
590
- handlePressEnter,
591
- handleInputChange,
592
- value,
593
- setValue,
594
- regenerateMessage,
595
- loading : ! done ,
596
- } ;
597
- } ;
598
-
599
475
export const useSendNextMessage = ( ) => {
600
476
const { setConversation } = useSetConversation ( ) ;
601
477
const { conversationId } = useGetChatSearchParams ( ) ;
@@ -662,7 +538,11 @@ export const useSendNextMessage = () => {
662
538
const data = await setConversation ( message . content ) ;
663
539
if ( data . retcode === 0 ) {
664
540
const id = data . data . id ;
665
- sendMessage ( { message, currentConversationId : id } ) ;
541
+ sendMessage ( {
542
+ message,
543
+ currentConversationId : id ,
544
+ messages : data . data . message ,
545
+ } ) ;
666
546
}
667
547
}
668
548
} ,
@@ -677,10 +557,14 @@ export const useSendNextMessage = () => {
677
557
678
558
useEffect ( ( ) => {
679
559
// #1289
680
- if ( answer . answer && answer ?. conversationId === conversationId ) {
560
+ if (
561
+ answer . answer &&
562
+ ! done &&
563
+ ( answer ?. conversationId === conversationId || conversationId === '' )
564
+ ) {
681
565
addNewestAnswer ( answer ) ;
682
566
}
683
- } , [ answer , addNewestAnswer , conversationId ] ) ;
567
+ } , [ answer , addNewestAnswer , conversationId , done ] ) ;
684
568
685
569
useEffect ( ( ) => {
686
570
// #1289 switch to another conversion window when the last conversion answer doesn't finish.
0 commit comments