Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions frontend/src/components/chat/AssistantMessage.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -636,6 +636,17 @@ describe('AssistantMessage', () => {
// 测试里的 selector 不订阅 store,换一个 message 引用触发重渲染。
rerender(<AssistantMessage {...props} message={{ ...props.message }} />);
expect(screen.getByTestId('suggested-questions')).toBeInTheDocument();

// ready 事件先于封口到达,流结束前推荐区不能消失。
rerender(
<AssistantMessage
{...props}
message={assistantMessage({ suggestedQuestionsStatus: 'ready' })}
suggestedQuestions={['继续问什么?']}
isLoadingQuestions={false}
/>,
);
expect(screen.getByTestId('suggested-questions')).toBeInTheDocument();
streamSlotState.byConversation = {};
});
});
3 changes: 2 additions & 1 deletion frontend/src/components/chat/AssistantMessage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,9 @@ function AssistantMessageFrame({
const slot = selectStreamSlot(state, conversationId);
return slot.displayedTextLength >= slot.totalTextLength;
});
// ready 事件在封口前就会到达,状态从 pending 变 ready 后也要继续显示到流结束,否则会闪一下。
const awaitingSuggestedQuestions = isStreaming
&& message.suggestedQuestionsStatus === 'pending'
&& (message.suggestedQuestionsStatus === 'pending' || message.suggestedQuestionsStatus === 'ready')
&& streamTextCaughtUp;

const answerEvidenceSidebar = useMemo(
Expand Down
Loading