import { useState, useRef } from 'react'; import type { NewTaskInput } from '../types'; import { useLanguage } from '../i18n/LanguageContext'; import './CreateTaskForm.css'; interface CreateTaskFormProps { onCreateTask: (task: NewTaskInput) => void; } export default function CreateTaskForm({ onCreateTask }: CreateTaskFormProps) { const { t } = useLanguage(); const [isOpen, setIsOpen] = useState(false); const [name, setName] = useState(''); const [doesRepeat, setDoesRepeat] = useState(true); const [repeatAmount, setRepeatAmount] = useState('1'); const [repeatUnit, setRepeatUnit] = useState<'WEEKS' | 'MONTHS' | 'YEARS'>('WEEKS'); const [toDoToday, setToDoToday] = useState(true); const [priority, setPriority] = useState<'ESSENTIAL' | 'WHEN_I_HAVE_TIME'>('ESSENTIAL'); const inputRef = useRef(null); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!name.trim()) return; const taskInput: NewTaskInput = { name: name.trim(), doesRepeat, repeatsEvery: doesRepeat ? `${repeatAmount}_${repeatUnit}` : undefined, priority, toDoToday, }; onCreateTask(taskInput); setName(''); setDoesRepeat(true); setRepeatAmount('1'); setRepeatUnit('WEEKS'); setToDoToday(true); setPriority('ESSENTIAL'); setIsOpen(false); }; return (
{!isOpen ? ( ) : (

{t.createNewTaskTitle}

setName(e.target.value.slice(0, 60))} placeholder={t.taskPlaceholder} maxLength={60} autoFocus />
{name.length}/60
{doesRepeat && (
setRepeatAmount(e.target.value)} min="1" max="999" className="repeat-amount" />
)}
)}
); }