Uecko_ERP/modules/customer-invoices/src/web/components/editor/invoice-basic-info-fields.tsx

75 lines
2.6 KiB
TypeScript
Raw Normal View History

2025-09-29 18:22:59 +00:00
import {
DatePickerInputField,
2025-10-12 10:43:06 +00:00
TextField
2025-09-29 18:22:59 +00:00
} from "@repo/rdx-ui/components";
2025-10-14 17:57:02 +00:00
import { FieldDescription, FieldGroup, FieldLegend, FieldSet } from '@repo/shadcn-ui/components';
2025-10-12 10:43:06 +00:00
import { ComponentProps } from 'react';
import { useFormContext } from "react-hook-form";
2025-09-29 18:22:59 +00:00
import { useTranslation } from "../../i18n";
2025-10-12 10:43:06 +00:00
import { InvoiceFormData } from "../../schemas";
2025-09-29 18:22:59 +00:00
2025-10-12 10:43:06 +00:00
export const InvoiceBasicInfoFields = (props: ComponentProps<"fieldset">) => {
2025-09-29 18:22:59 +00:00
const { t } = useTranslation();
2025-10-12 10:43:06 +00:00
const { control } = useFormContext<InvoiceFormData>();
2025-09-29 18:22:59 +00:00
return (
2025-10-14 17:57:02 +00:00
<FieldSet {...props}>
<FieldLegend className='hidden text-foreground' variant='label'>
{t("form_groups.basic_info.title")}
</FieldLegend>
<FieldDescription className='hidden'>{t("form_groups.basic_info.description")}</FieldDescription>
2025-10-14 13:46:57 +00:00
2025-10-14 17:57:02 +00:00
<FieldGroup className='flex flex-row flex-wrap gap-6 xl:flex-nowrap'>
<DatePickerInputField
className='min-w-44 flex-1 sm:max-w-44'
control={control}
name='invoice_date'
numberOfMonths={2}
required
label={t("form_fields.invoice_date.label")}
placeholder={t("form_fields.invoice_date.placeholder")}
description={t("form_fields.invoice_date.description")}
/>
2025-10-12 10:43:06 +00:00
2025-10-14 17:57:02 +00:00
<DatePickerInputField
className='min-w-44 flex-1 sm:max-w-44'
control={control}
numberOfMonths={2}
name='operation_date'
label={t("form_fields.operation_date.label")}
placeholder={t("form_fields.operation_date.placeholder")}
description={t("form_fields.operation_date.description")}
/>
2025-10-14 13:46:57 +00:00
2025-10-14 17:57:02 +00:00
<TextField
className='min-w-16 flex-1 sm:max-w-16'
control={control}
name='series'
label={t("form_fields.series.label")}
placeholder={t("form_fields.series.placeholder")}
description={t("form_fields.series.description")}
/>
2025-10-12 10:43:06 +00:00
2025-10-14 17:57:02 +00:00
<TextField
className='min-w-32 flex-1 sm:max-w-44'
maxLength={256}
control={control}
name='reference'
label={t("form_fields.reference.label")}
placeholder={t("form_fields.reference.placeholder")}
description={t("form_fields.reference.description")}
/>
2025-10-12 10:43:06 +00:00
2025-10-14 17:57:02 +00:00
<TextField
className='min-w-32 flex-1 xs:max-w-full'
maxLength={256}
control={control}
name='description'
label={t("form_fields.description.label")}
placeholder={t("form_fields.description.placeholder")}
description={t("form_fields.description.description")}
/>
2025-09-29 18:22:59 +00:00
</FieldGroup>
2025-10-14 17:57:02 +00:00
</FieldSet>
2025-09-29 18:22:59 +00:00
);
2025-10-14 17:57:02 +00:00
};