| import React, { useState } from 'react'; | |
| import { Search, LoaderCircle } from 'lucide-react'; | |
| function JobForm({ onAnalyze, isLoading }) { | |
| const [ticker, setTicker] = useState(''); | |
| const handleSubmit = (e) => { | |
| e.preventDefault(); | |
| if (!ticker.trim() || isLoading) return; | |
| onAnalyze(ticker); | |
| }; | |
| return ( | |
| <form onSubmit={handleSubmit} className="mb-12"> | |
| <div className="flex items-center bg-gray-800 border-2 border-gray-600 rounded-lg overflow-hidden focus-within:border-green-400 transition-colors duration-300"> | |
| <span className="pl-4 text-gray-400"> | |
| <Search className="w-6 h-6" /> | |
| </span> | |
| <input | |
| type="text" | |
| value={ticker} | |
| onChange={(e) => setTicker(e.target.value.toUpperCase())} | |
| placeholder="e.g., RELIANCE.NS" | |
| className="w-full p-4 bg-transparent text-lg text-gray-200 placeholder-gray-500 focus:outline-none" | |
| disabled={isLoading} | |
| /> | |
| <button | |
| type="submit" | |
| className="bg-green-600 hover:bg-green-700 text-white font-bold py-4 px-6 transition-colors duration-300 disabled:bg-gray-500 disabled:cursor-not-allowed" | |
| disabled={isLoading} | |
| > | |
| {isLoading ? ( | |
| <LoaderCircle className="animate-spin w-6 h-6" /> | |
| ) : ( | |
| 'Analyze' | |
| )} | |
| </button> | |
| </div> | |
| </form> | |
| ); | |
| } | |
| export default JobForm; |