import React, { useState } from "react"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { Search, Mic } from "lucide-react"; import { motion } from "framer-motion"; export default function SearchBar({ onSearch }) { const [query, setQuery] = useState(""); const [isListening, setIsListening] = useState(false); const handleSubmit = (e) => { e.preventDefault(); onSearch(query); }; const handleVoiceSearch = () => { if ('webkitSpeechRecognition' in window) { const recognition = new window.webkitSpeechRecognition(); recognition.continuous = false; recognition.interimResults = false; recognition.lang = 'en-US'; setIsListening(true); recognition.start(); recognition.onresult = (event) => { const transcript = event.results[0][0].transcript; setQuery(transcript); onSearch(transcript); setIsListening(false); }; recognition.onerror = () => { setIsListening(false); }; recognition.onend = () => { setIsListening(false); }; } }; return (
setQuery(e.target.value)} className="flex-1 border-0 bg-transparent text-lg py-4 px-4 focus:ring-2 focus:ring-[var(--neon-cyan)] focus:outline-none placeholder:text-[var(--text-muted)] font-mono text-[var(--text-main)]" style={{ fontFamily: 'var(--font-mono)' }} />
); }