"use client" import { useState, useRef, useEffect, useCallback } from "react" import { useTranslations } from "next-intl" import { MessageCircleQuestion, SendHorizonal } from "lucide-react" import { Button } from "@/components/ui/button" import { matchShortcutEvent } from "@/lib/keyboard-shortcuts" import { useShortcutSettings } from "@/hooks/use-shortcut-settings" import type { PendingQuestion } from "@/contexts/acp-connections-context" interface QuestionDialogProps { question: PendingQuestion | null onAnswer: (answer: string) => void } export function QuestionDialog({ question, onAnswer }: QuestionDialogProps) { const t = useTranslations("Folder.chat.questionDialog") const { shortcuts } = useShortcutSettings() const [answer, setAnswer] = useState("") const textareaRef = useRef(null) const prevQuestionIdRef = useRef(null) const questionId = question?.tool_call_id ?? null if (questionId !== prevQuestionIdRef.current) { prevQuestionIdRef.current = questionId if (questionId && answer !== "") { setAnswer("") } } useEffect(() => { if (question) { textareaRef.current?.focus() } }, [question]) const handleSubmit = useCallback(() => { const trimmed = answer.trim() if (!trimmed) return onAnswer(trimmed) setAnswer("") }, [answer, onAnswer]) const handleKeyDown = useCallback( (e: React.KeyboardEvent) => { if (matchShortcutEvent(e, shortcuts.send_message)) { e.preventDefault() handleSubmit() } }, [handleSubmit, shortcuts] ) if (!question) return null return (
{t("title")}

{question.question}