@@ -212,18 +212,19 @@ export default function useChat<
212
212
213
213
// ================================== Global ==================================
214
214
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 ] ;
216
217
if ( ! last ) return false ;
217
218
return last . status === MessageStatus . PENDING || last . status === MessageStatus . GENERATING ;
218
219
}
219
220
220
221
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 ] ;
223
224
if ( message ?. status === MessageStatus . GENERATING ) {
224
225
await typing . close ( true ) ;
225
226
if ( closing . current ) {
226
- _updateMessage ( prompt ! . id , message . id , { status : MessageStatus . DONE } ) ;
227
+ _updateMessage ( lastPrompt ! . id , message . id , { status : MessageStatus . DONE } ) ;
227
228
}
228
229
} else {
229
230
typing . stop ( ) ;
@@ -236,8 +237,10 @@ export default function useChat<
236
237
closing . current = false ;
237
238
if ( _isProcessing ( ) ) {
238
239
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 */
241
244
if ( ! prompt || ! message ) return state . current ;
242
245
typing . start ( message . content ) ;
243
246
typingIds . current = { promptId : prompt . id , messageId : message . id } ;
0 commit comments