import React, { useState, useEffect } from "react"; export default function QueryInput({ onSubmit, loading, datasetName, schema, onArrowUp }) { const [question, setQuestion] = useState(""); // Clear input when dataset changes useEffect(() => { setQuestion(""); }, [datasetName]); const handleFormSubmit = (e) => { if (e) e.preventDefault(); if (!question || question.trim().length < 3 || loading) return; onSubmit(question.trim()); setQuestion(""); }; const handleKeyDown = (e) => { // Enter key or Ctrl+Enter submits the form, but Shift+Enter adds a newline if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); handleFormSubmit(); } else if (e.key === "Enter" && e.ctrlKey) { e.preventDefault(); handleFormSubmit(); } // Arrow Up when input is empty fills with last question if (e.key === "ArrowUp" && !question.trim()) { if (onArrowUp) { const lastQ = onArrowUp(); if (lastQ) { e.preventDefault(); setQuestion(lastQ); } } } }; return (