Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / components / containers / contacts / edit / fields / ContactFieldDate.tsx
blob2b07bc99bb6b987ec3c98ec5546ae782e31189d3
1 import { isValid } from 'date-fns';
3 import DateInput from '@proton/components/components/input/DateInput';
4 import { getDateFromVCardProperty } from '@proton/shared/lib/contacts/property';
5 import { getAllFieldLabels } from '@proton/shared/lib/helpers/contacts';
6 import type { VCardDateOrText, VCardProperty } from '@proton/shared/lib/interfaces/contacts/VCard';
8 interface Props {
9     vCardProperty: VCardProperty<VCardDateOrText>;
10     onChange: (vCardProperty: VCardProperty) => void;
13 const ContactFieldDate = ({ vCardProperty, onChange, ...rest }: Props) => {
14     const label = (getAllFieldLabels() as any)[vCardProperty.field] || '';
16     const date = getDateFromVCardProperty(vCardProperty);
18     const handleChange = (date?: Date) => {
19         if (!date || !isValid(date)) {
20             return;
21         }
23         onChange({ ...vCardProperty, value: { ...vCardProperty.value, date } });
24     };
26     return <DateInput placeholder={label} value={date} onChange={handleChange} data-testid={label} {...rest} />;
29 export default ContactFieldDate;