import React, { useState, useRef } from 'react'; import { translations } from '../translations'; interface InputFormProps { onStart: (startUrl: string, maxCompetitors: number, marketScope: string, language: 'de' | 'en') => void; onLoadAnalysis: (state: any) => void; } const InputForm: React.FC = ({ onStart, onLoadAnalysis }) => { const [startUrl, setStartUrl] = useState('https://www.mobilexag.de'); const [maxCompetitors, setMaxCompetitors] = useState(12); const [marketScope, setMarketScope] = useState('DACH'); const [language, setLanguage] = useState<'de' | 'en'>('de'); const fileInputRef = useRef(null); const t = translations[language]; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); onStart(startUrl, maxCompetitors, marketScope, language); }; const handleLoadClick = () => { fileInputRef.current?.click(); }; const handleFileChange = (event: React.ChangeEvent) => { const file = event.target.files?.[0]; if (file) { const reader = new FileReader(); reader.onload = (e) => { try { const json = JSON.parse(e.target?.result as string); onLoadAnalysis(json); } catch (error) { console.error("Error parsing JSON:", error); alert("Fehler beim Lesen der Datei. Ist es eine valide JSON-Datei?"); } }; reader.readAsText(file); } }; const inputClasses = "w-full bg-light-primary dark:bg-brand-primary text-light-text dark:text-brand-text border border-light-accent dark:border-brand-accent rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-brand-highlight placeholder-light-subtle dark:placeholder-brand-light"; return (

{t.inputForm.title}

{t.inputForm.subtitle}

setStartUrl(e.target.value)} className={inputClasses} placeholder="https://www.example-company.com" required />
setMaxCompetitors(parseInt(e.target.value, 10))} className={inputClasses} min="1" max="50" />
setMarketScope(e.target.value)} className={inputClasses} placeholder={t.inputForm.marketScopePlaceholder} />
{t.inputForm.loadAnalysisLabel}
); }; export default InputForm;