import React, { useMemo, useCallback } from 'react'; import { FormGroup, InputGroup, Intent, Position, MenuItem, Classes, } from '@blueprintjs/core'; import { sumBy } from 'lodash'; import { DateInput } from '@blueprintjs/datetime'; import { FormattedMessage as T } from 'react-intl'; import moment from 'moment'; import classNames from 'classnames'; import { CLASSES } from 'common/classes'; import { momentFormatter, compose, tansformDateValue } from 'utils'; import { AccountsSelectList, ContactSelecetList, ErrorMessage, FieldRequiredHint, Money, Hint, } from 'components'; import withVender from 'containers/Vendors/withVendors'; import withAccounts from 'containers/Accounts/withAccounts'; /** * Payment made header form. */ function PaymentMadeFormHeader({ paymentMadeId, payableFullAmount, onPaymentNumberChanged, amountPaid = 0, // #useFormik errors, touched, setFieldValue, getFieldProps, values, onFullAmountChanged, //#withVender vendorsCurrentPage, vendorItems, //#withAccouts accountsList, }) { const isNewMode = !paymentMadeId; const handleDateChange = useCallback( (date_filed) => (date) => { const formatted = moment(date).format('YYYY-MM-DD'); setFieldValue(date_filed, formatted); }, [setFieldValue], ); const triggerFullAmountChanged = (value) => { onFullAmountChanged && onFullAmountChanged(value); }; const handleFullAmountBlur = (event) => { triggerFullAmountChanged(event.currentTarget.value); }; const onChangeSelect = useCallback( (filedName) => { return (item) => { setFieldValue(filedName, item.id); }; }, [setFieldValue], ); const handleReceiveFullAmountClick = () => { setFieldValue('full_amount', payableFullAmount); triggerFullAmountChanged(payableFullAmount); }; const handlePaymentNumberBlur = (event) => { onPaymentNumberChanged && onPaymentNumberChanged(event.currentTarget.value) }; return (