"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 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 [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 (e.key === "Enter" && !e.shiftKey) { e.preventDefault() handleSubmit() } }, [handleSubmit] ) if (!question) return null return (
{t("title")}

{question.question}