@@ -23,6 +23,8 @@ interface ChatContextData {
23
23
loading : boolean ;
24
24
failedMessage : FailedMessage | null ;
25
25
reset : ( ) => void ;
26
+ setLastMessageId : ( id : number | null ) => void ;
27
+ lastMessageToVote : number | null ;
26
28
}
27
29
const [
28
30
useChat ,
@@ -37,6 +39,10 @@ const ChatProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
37
39
const config = useConfigData ( ) ;
38
40
const { sessionId } = useSessionId ( config . token ) ;
39
41
const [ conversationInfo , setConversationInfo ] = useState < string | null > ( null ) ;
42
+ const [ lastMessageToVote , setLastMessageToVote ] = useState < number | null > ( null ) ;
43
+ const setLastMessageId = useCallback ( ( id : number | null ) => {
44
+ setLastMessageToVote ( id )
45
+ } , [ ] )
40
46
useEffect ( ( ) => {
41
47
getInitialData ( axiosInstance ) . then ( ( data ) => {
42
48
setMessages ( historyToMessages ( data . history ) )
@@ -94,7 +100,6 @@ const ChatProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
94
100
95
101
const updateBotMessage = useCallback ( ( id : string , text : string ) => {
96
102
const botMessage = messages . find ( m => m . id === id ) as BotResponse
97
- console . log ( { botMessage } )
98
103
if ( botMessage ) {
99
104
// append the text to the bot message
100
105
const textt = botMessage . response . text + text
@@ -133,7 +138,18 @@ const ChatProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
133
138
}
134
139
135
140
} , [ currentMessagePair , sessionId , socket , updateBotMessage ] ) ;
136
-
141
+ useEffect ( ( ) => {
142
+ socket . on ( `${ sessionId } _vote` , ( content ) => {
143
+ console . log ( `${ sessionId } _vote ==>` , content )
144
+ if ( content ) {
145
+ setLastMessageToVote ( content )
146
+ }
147
+ } ) ;
148
+ return ( ) => {
149
+ socket . off ( `${ sessionId } _vote` ) ;
150
+ setLastMessageToVote ( null )
151
+ } ;
152
+ } , [ sessionId , socket ] )
137
153
function reset ( ) {
138
154
setMessages ( [ ] ) ;
139
155
}
@@ -145,6 +161,8 @@ const ChatProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
145
161
loading,
146
162
failedMessage,
147
163
reset,
164
+ setLastMessageId,
165
+ lastMessageToVote
148
166
} ;
149
167
150
168
return (
0 commit comments