feat(core): add address fields to CompanyForm
This commit is contained in:
@@ -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')}
|
||||||
|
|||||||
Reference in New Issue
Block a user