import React from 'react' import { FormattedMessage } from '@cultureamp/i18n-react-intl' import { isDisabledDate, isInvalidDate, type DisabledDays } from '~components/Calendar' import { type ValidationResponse } from '../types' export type ValidateDateArgs = { date: Date | undefined inputValue: string | undefined disabledDays?: DisabledDays } export type ValidateDateResponse = { validationResponse: ValidationResponse newDate: Date | undefined } export const validateDate = ({ date, inputValue, disabledDays, }: ValidateDateArgs): ValidateDateResponse => { const baseResponse = { date, inputValue, status: undefined, validationMessage: undefined, isInvalid: false, isDisabled: false, isEmpty: false, isValidDate: false, } if (date === undefined) { return { validationResponse: { ...baseResponse, isEmpty: true, }, newDate: undefined, } } if (isInvalidDate(date)) { return { validationResponse: { ...baseResponse, status: 'error', validationMessage: inputValue ? ( ) : ( ), isInvalid: true, }, newDate: undefined, } } if (isDisabledDate(date, disabledDays)) { return { validationResponse: { ...baseResponse, status: 'error', validationMessage: ( ), isDisabled: true, }, newDate: undefined, } } return { validationResponse: { ...baseResponse, isValidDate: true, }, newDate: date, } }