import { useChat } from "@ag-kit/ui-react";
function SimpleApprovalChat() {
const { sendMessage, uiMessages, streaming } = useChat({
url: "/your-agent-endpoint", // Replace with your actual endpoint
interrupt: {
renderWithResume({ interrupt, resume }) {
// Extract message from payload (assume it's { message: string })
const message = (interrupt.payload as { message: string }).message;
return (
<div>
<p>{message}</p>
<button
onClick={() => resume({ approved: true })}
disabled={streaming}
>
Yes
</button>
<button
onClick={() => resume({ approved: false })}
disabled={streaming}
>
No
</button>
</div>
);
},
},
});
return (
<div>
{/* Simple message display */}
{uiMessages.map((msg, i) => (
<div key={i} style={{ margin: "10px 0" }}>
<strong>{msg.role}:</strong>
{msg.parts.map((part, j) => (
<div key={j}>
{part.type === "text" && <p>{part.text}</p>}
{part.type === "interrupt" && part.render?.()}
</div>
))}
</div>
))}
<button
onClick={() => sendMessage("Perform an action that requires approval")}
disabled={streaming}
>
Send Message
</button>
</div>
);
}