import { useMemo, useState } from 'react' import PzBusy from './PzBusy.jsx' import { t } from '../i18n/index.js' const EMPTY_FORM = { selfFirstName: '', selfLastName: '', selfBirthYear: '', parent1FirstName: '', parent1LastName: '', parent2FirstName: '', parent2LastName: '', } function toDateFromYear(yearText) { const year = Number.parseInt(yearText, 10) if (!Number.isFinite(year) || year < 1000 || year > 2999) { return null } return `${year.toString().padStart(4, '0')}-01-01` } const InitialTreeWizard = ({ loading, errorMessage, onSubmit, onSkip }) => { const [form, setForm] = useState(EMPTY_FORM) const canSubmit = useMemo(() => { return ( form.selfFirstName.trim().length > 0 && form.selfLastName.trim().length > 0 && form.parent1FirstName.trim().length > 0 && form.parent1LastName.trim().length > 0 && form.parent2FirstName.trim().length > 0 && form.parent2LastName.trim().length > 0 && !loading ) }, [form, loading]) const updateField = (key, value) => { setForm((current) => ({ ...current, [key]: value })) } const handleSubmit = async (event) => { event.preventDefault() if (!canSubmit) return await onSubmit({ self: { firstName: form.selfFirstName.trim(), lastName: form.selfLastName.trim(), birthDate: toDateFromYear(form.selfBirthYear.trim()), }, parent1: { firstName: form.parent1FirstName.trim(), lastName: form.parent1LastName.trim(), }, parent2: { firstName: form.parent2FirstName.trim(), lastName: form.parent2LastName.trim(), }, }) } return (