feat(core): add address fields to CompanyForm

This commit is contained in:
2026-07-04 00:20:29 +00:00
parent ec0353f469
commit f31baa444a
+51
View File
@@ -20,6 +20,11 @@ const companySchema = z.object({
email: z.string().email('Ungültige E-Mail-Adresse').max(255).optional().or(z.literal('')), email: z.string().email('Ungültige E-Mail-Adresse').max(255).optional().or(z.literal('')),
website: z.string().max(500, 'Maximal 500 Zeichen').optional().or(z.literal('')), website: z.string().max(500, 'Maximal 500 Zeichen').optional().or(z.literal('')),
description: z.string().optional().or(z.literal('')), description: z.string().optional().or(z.literal('')),
address_street: z.string().max(255).optional().or(z.literal('')),
address_city: z.string().max(100).optional().or(z.literal('')),
address_zip: z.string().max(20).optional().or(z.literal('')),
address_country: z.string().max(2).optional().or(z.literal('')),
address_state: z.string().max(100).optional().or(z.literal('')),
}); });
type CompanyFormValues = z.infer<typeof companySchema>; type CompanyFormValues = z.infer<typeof companySchema>;
@@ -50,6 +55,11 @@ export function CompanyFormPage() {
email: '', email: '',
website: '', website: '',
description: '', description: '',
address_street: '',
address_city: '',
address_zip: '',
address_country: '',
address_state: '',
}, },
}); });
@@ -63,6 +73,11 @@ export function CompanyFormPage() {
email: company.email || '', email: company.email || '',
website: company.website || '', website: company.website || '',
description: company.description || '', description: company.description || '',
address_street: (company as any).address_street || '',
address_city: (company as any).address_city || '',
address_zip: (company as any).address_zip || '',
address_country: (company as any).address_country || '',
address_state: (company as any).address_state || '',
}); });
} }
}, [company, isEdit, reset]); }, [company, isEdit, reset]);
@@ -175,6 +190,42 @@ export function CompanyFormPage() {
)} )}
</Card> </Card>
<Card title={t('address.title')}>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<Input
{...register('address_street')}
label={t('address.street')}
error={errors.address_street?.message}
placeholder="Musterstraße 1"
/>
<Input
{...register('address_city')}
label={t('address.city')}
error={errors.address_city?.message}
placeholder="Berlin"
/>
<Input
{...register('address_zip')}
label={t('address.zip')}
error={errors.address_zip?.message}
placeholder="10115"
/>
<Input
{...register('address_country')}
label={t('address.country')}
error={errors.address_country?.message}
placeholder="DE"
maxLength={2}
/>
<Input
{...register('address_state')}
label={t('address.state')}
error={errors.address_state?.message}
placeholder="Berlin"
/>
</div>
</Card>
<div className="flex justify-end gap-3"> <div className="flex justify-end gap-3">
<Button variant="secondary" onClick={() => navigate(-1)}> <Button variant="secondary" onClick={() => navigate(-1)}>
{t('common.cancel')} {t('common.cancel')}