Unverified 提交 d83f5fec authored 作者: Adeniji Adekunle James's avatar Adeniji Adekunle James 提交者: GitHub

fix: show dyad-command buttons within assistant responses instead of hiding tags (#1421) (#1432)

### Problem Users were confused because `<dyad-command>` tags were being hidden, making it unclear what actions were available. ### Solution Render dyad-command tags as visible buttons, so users can see and interact with available commands (e.g., "restart"). Closes #1421 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Show dyad-command tags as visible buttons in assistant responses so users can see and trigger actions (e.g., restart). Closes #1421. - **Bug Fixes** - Render dyad-command tags to buttons in DyadMarkdownParser. - Export mapActionToButton from ChatInput for reuse. - Support id/action/path attributes; safely no-op if parsing fails. <!-- End of auto-generated description by cubic. -->
上级 423a95ed
...@@ -556,7 +556,7 @@ function KeepGoingButton() { ...@@ -556,7 +556,7 @@ function KeepGoingButton() {
); );
} }
function mapActionToButton(action: SuggestedAction) { export function mapActionToButton(action: SuggestedAction) {
switch (action.id) { switch (action.id) {
case "summarize-in-new-chat": case "summarize-in-new-chat":
return <SummarizeInNewChatButton />; return <SummarizeInNewChatButton />;
......
...@@ -22,6 +22,8 @@ import { DyadMcpToolResult } from "./DyadMcpToolResult"; ...@@ -22,6 +22,8 @@ import { DyadMcpToolResult } from "./DyadMcpToolResult";
import { DyadWebSearchResult } from "./DyadWebSearchResult"; import { DyadWebSearchResult } from "./DyadWebSearchResult";
import { DyadWebSearch } from "./DyadWebSearch"; import { DyadWebSearch } from "./DyadWebSearch";
import { DyadRead } from "./DyadRead"; import { DyadRead } from "./DyadRead";
import { mapActionToButton } from "./ChatInput";
import { SuggestedAction } from "@/lib/schemas";
interface DyadMarkdownParserProps { interface DyadMarkdownParserProps {
content: string; content: string;
...@@ -498,7 +500,12 @@ function renderCustomTag( ...@@ -498,7 +500,12 @@ function renderCustomTag(
return null; return null;
case "dyad-command": case "dyad-command":
// Don't render anything for dyad-command if (attributes.type) {
const action = {
id: attributes.type,
} as SuggestedAction;
return <>{mapActionToButton(action)}</>;
}
return null; return null;
default: default:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论