@@ -212,18 +212,19 @@ export default function useChat<
212212
213213 // ================================== Global ==================================
214214 function _isProcessing ( ) {
215- const last = state . current ?. prompts . at ( - 1 ) ?. messages ?. at ( - 1 ) ;
215+ const lastPrompt = state . current ?. prompts ?. [ state . current ?. prompts . length - 1 ] ;
216+ const last = lastPrompt ?. messages ?. [ lastPrompt . messages . length - 1 ] ;
216217 if ( ! last ) return false ;
217218 return last . status === MessageStatus . PENDING || last . status === MessageStatus . GENERATING ;
218219 }
219220
220221 async function _saveViewState ( ) {
221- const prompt = state . current ?. prompts . at ( - 1 ) ;
222- const message = prompt ?. messages ?. at ( - 1 ) ;
222+ const lastPrompt = state . current ?. prompts ?. [ state . current ?. prompts . length - 1 ] ;
223+ const message = lastPrompt ?. messages ?. [ lastPrompt . messages . length - 1 ] ;
223224 if ( message ?. status === MessageStatus . GENERATING ) {
224225 await typing . close ( true ) ;
225226 if ( closing . current ) {
226- _updateMessage ( prompt ! . id , message . id , { status : MessageStatus . DONE } ) ;
227+ _updateMessage ( lastPrompt ! . id , message . id , { status : MessageStatus . DONE } ) ;
227228 }
228229 } else {
229230 typing . stop ( ) ;
@@ -236,8 +237,10 @@ export default function useChat<
236237 closing . current = false ;
237238 if ( _isProcessing ( ) ) {
238239 const conversation = _getConversation ( ) ;
239- const prompt = conversation ?. prompts . at ( - 1 ) ;
240- const message = prompt ?. messages . at ( - 1 ) ;
240+ const prompt = conversation ?. prompts ?. [ conversation ?. prompts . length - 1 ] ;
241+ const message = prompt ?. messages ?. [ prompt . messages . length - 1 ] ;
242+ // 理论上这里不会出现没有 prompt 或 message 的情况
243+ /* istanbul ignore next */
241244 if ( ! prompt || ! message ) return state . current ;
242245 typing . start ( message . content ) ;
243246 typingIds . current = { promptId : prompt . id , messageId : message . id } ;
0 commit comments