feat(ui): 将权限请求改为内联显示在聊天流中
- 添加 PermissionMessagePart 类型 - 创建 PermissionRequestInline 内联组件 - 修改 useChat 将权限请求作为 Part 处理 - 移除模态对话框,不再阻断 IDE 操作
This commit is contained in:
@@ -11,7 +11,6 @@ import {
|
||||
ChatMessage,
|
||||
TypingIndicator,
|
||||
ChatInput,
|
||||
PermissionDialog,
|
||||
ContextUsage,
|
||||
SubagentProgress,
|
||||
DiagnosticsIndicator,
|
||||
@@ -78,7 +77,6 @@ export function ChatPage({
|
||||
streamingMessage,
|
||||
sendMessage,
|
||||
cancelProcessing,
|
||||
permissionRequest,
|
||||
allowPermission,
|
||||
denyPermission,
|
||||
agentMode,
|
||||
@@ -216,13 +214,27 @@ export function ChatPage({
|
||||
|
||||
<AnimatePresence mode="popLayout">
|
||||
{messages.map((message) => (
|
||||
<ChatMessage key={message.id} message={message} onAnswerQuestion={answerQuestion} onViewDiff={onViewDiff ?? onFileDiff} />
|
||||
<ChatMessage
|
||||
key={message.id}
|
||||
message={message}
|
||||
onAnswerQuestion={answerQuestion}
|
||||
onViewDiff={onViewDiff ?? onFileDiff}
|
||||
onAllowPermission={allowPermission}
|
||||
onDenyPermission={denyPermission}
|
||||
/>
|
||||
))}
|
||||
</AnimatePresence>
|
||||
|
||||
{/* 流式消息 - 复用 ChatMessage 组件 */}
|
||||
{streamingMessage && (
|
||||
<ChatMessage message={streamingMessage} isStreaming onAnswerQuestion={answerQuestion} onViewDiff={onViewDiff ?? onFileDiff} />
|
||||
<ChatMessage
|
||||
message={streamingMessage}
|
||||
isStreaming
|
||||
onAnswerQuestion={answerQuestion}
|
||||
onViewDiff={onViewDiff ?? onFileDiff}
|
||||
onAllowPermission={allowPermission}
|
||||
onDenyPermission={denyPermission}
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* 子 Agent 进度显示 */}
|
||||
@@ -252,15 +264,6 @@ export function ChatPage({
|
||||
onAutoAttachActiveFileToggle={onAutoAttachActiveFileToggle}
|
||||
/>
|
||||
|
||||
{/* Permission Dialog */}
|
||||
{permissionRequest && (
|
||||
<PermissionDialog
|
||||
request={permissionRequest}
|
||||
onAllow={(requestId, remember) => allowPermission(requestId, remember)}
|
||||
onDeny={(requestId, remember) => denyPermission(requestId, remember)}
|
||||
responsive={responsive}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user