import React, { useCallback } from 'react'; import { FormGroup, InputGroup, Position, ControlGroup, } from '@blueprintjs/core'; import { DateInput } from '@blueprintjs/datetime'; import { FastField, ErrorMessage } from 'formik'; import { FormattedMessage as T } from 'react-intl'; import moment from 'moment'; import { momentFormatter, compose, tansformDateValue, saveInvoke } from 'utils'; import classNames from 'classnames'; import { CLASSES } from 'common/classes'; import { ContactSelecetList, FieldRequiredHint, Icon, InputPrependButton, Row, Col, } from 'components'; import withCustomers from 'containers/Customers/withCustomers'; import withDialogActions from 'containers/Dialog/withDialogActions'; import { inputIntent, handleDateChange } from 'utils'; function InvoiceFormHeader({ //#withCustomers customers, //#withDialogActions openDialog, // #ownProps onInvoiceNumberChanged, }) { const handleInvoiceNumberChange = useCallback(() => { openDialog('invoice-number-form', {}); }, [openDialog]); const handleInvoiceNumberChanged = (event) => { saveInvoke(onInvoiceNumberChanged, event.currentTarget.value); }; return (
{/* ----------- Customer name ----------- */} {({ form, field: { value }, meta: { error, touched } }) => ( } inline={true} className={classNames( 'form-group--customer-name', CLASSES.FILL, )} labelInfo={} intent={inputIntent({ error, touched })} helperText={} > } onContactSelected={(customer) => { form.setFieldValue('customer_id', customer.id); }} /> )} {/* ----------- Invoice date ----------- */} {({ form, field: { value }, meta: { error, touched } }) => ( } inline={true} labelInfo={} className={classNames( 'form-group--invoice-date', CLASSES.FILL, )} intent={inputIntent({ error, touched })} helperText={} > { form.setFieldValue('invoice_date', formattedDate); })} popoverProps={{ position: Position.BOTTOM, minimal: true }} /> )} {/* ----------- Due date ----------- */} {({ form, field: { value }, meta: { error, touched } }) => ( } inline={true} className={classNames( 'form-group--due-date', CLASSES.FILL, )} intent={inputIntent({ error, touched })} helperText={} > { form.setFieldValue('due_date', formattedDate); })} popoverProps={{ position: Position.BOTTOM, minimal: true }} /> )} {/* ----------- Invoice number ----------- */} {({ form, field, meta: { error, touched } }) => ( } inline={true} className={classNames('form-group--invoice-no', CLASSES.FILL)} intent={inputIntent({ error, touched })} helperText={} > , }} tooltip={true} tooltipProps={{ content: 'Setting your auto-generated invoice number', position: Position.BOTTOM_LEFT, }} /> )} {/* ----------- Reference ----------- */} {({ field, meta: { error, touched } }) => ( } inline={true} className={classNames('form-group--reference', CLASSES.FILL)} intent={inputIntent({ error, touched })} helperText={} > )}
); } export default compose( withCustomers(({ customers }) => ({ customers, })), withDialogActions, )(InvoiceFormHeader);