diff --git a/packages/tui/src/feature-plugins/prompt/btw.tsx b/packages/tui/src/feature-plugins/prompt/btw.tsx
index 1023f12a522..8849acc6a83 100644
--- a/packages/tui/src/feature-plugins/prompt/btw.tsx
+++ b/packages/tui/src/feature-plugins/prompt/btw.tsx
@@ -43,6 +43,8 @@ export default Plugin.define({
append: "app",
render() {
const toast = useToast()
+ // Dialogs render beside PluginProvider, so Answer cannot call usePlugin().
+ const plugins = usePlugin()
context.keymap.layer(() => ({
mode: "global",
commands: [
@@ -66,7 +68,9 @@ export default Plugin.define({
await context.client.session
.generate({ sessionID: route.sessionID, prompt: [instructions, question].join("\n\n") })
.then((result) => {
- context.ui.dialog.show(() => )
+ context.ui.dialog.show(() => (
+
+ ))
context.ui.dialog.set({ size: "large", centered: true })
})
.catch((cause: unknown) => toast.error(cause))
@@ -81,11 +85,14 @@ export default Plugin.define({
},
})
-function Answer(props: { question: string; answer: string }) {
+export function Answer(props: {
+ question: string
+ answer: string
+ markdown: ReturnType["markdown"]
+}) {
const dialog = useDialog()
const toast = useToast()
const clipboard = useClipboard()
- const plugins = usePlugin()
const theme = useTheme().surface("dialog")
const overlay = useTheme()
const syntax = useThemes().currentSyntax
@@ -142,7 +149,7 @@ function Answer(props: { question: string; answer: string }) {