"use client"; /** * Mode Natural Input Component * Natural language input for study queries with local mode detection */ import { useState } from "react"; import { detectModeFromQuery, EXAMPLE_QUERIES, type Mode } from "./modeSelectionTypes"; interface ModeNaturalInputProps { onSubmit: (query: string, detectedMode: Mode) => void; } export function ModeNaturalInput({ onSubmit }: ModeNaturalInputProps) { const [query, setQuery] = useState(""); const [isFocused, setIsFocused] = useState(false); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (query.trim()) { const detectedMode = detectModeFromQuery(query); if (detectedMode) { onSubmit(query.trim(), detectedMode); } } }; const handleExampleClick = (example: string) => { setQuery(example); const detectedMode = detectModeFromQuery(example); if (detectedMode) { onSubmit(example, detectedMode); } }; return (
setQuery(e.target.value)} onFocus={() => setIsFocused(true)} onBlur={() => setIsFocused(false)} placeholder="Tell DocDoe your class, upload goal, skill, or topic..." aria-label="Search for a topic or exam to prepare for" className="w-full px-6 py-4 bg-white/5 border border-white/10 rounded-xl text-white placeholder-white/40 focus:outline-none focus:border-white/20 transition-colors" />
{!isFocused && !query && (

Examples

{EXAMPLE_QUERIES.map((example, index) => ( ))}
)}
); }