import React from 'react'; import { FormGroup, InputGroup, Position, ControlGroup, } from '@blueprintjs/core'; import { DateInput } from '@blueprintjs/datetime'; import { FastField, Field, ErrorMessage } from 'formik'; import { FormattedMessage as T } from 'components'; import { momentFormatter, compose, tansformDateValue } from 'utils'; import classNames from 'classnames'; import { CLASSES } from 'common/classes'; import { AccountsSelectList, FieldRequiredHint, Icon, InputPrependButton, } from 'components'; import { inputIntent, handleDateChange } from 'utils'; import { useWarehouseTransferFormContext } from './WarehouseTransferFormProvider'; import { useObserveTransferNoSettings } from './utils'; import withSettings from 'containers/Settings/withSettings'; import withDialogActions from 'containers/Dialog/withDialogActions'; /** * Warehouse transfer form header fields. */ function WarehouseTransferFormHeaderFields({ // #withDialogActions openDialog, // #withSettings warehouseTransferAutoIncrement, warehouseTransferNextNumber, warehouseTransferNumberPrefix, }) { const { warehouses } = useWarehouseTransferFormContext(); // Handle warehouse transfer number changing. const handleTransferNumberChange = () => { openDialog('warehouse-transfer-no-form'); }; // Handle transfer no. field blur. const handleTransferNoBlur = (form, field) => (event) => { const newValue = event.target.value; if (field.value !== newValue && warehouseTransferAutoIncrement) { openDialog('warehouse-transfer-no-form', { initialFormValues: { manualTransactionNo: newValue, incrementMode: 'manual-transaction', }, }); } }; // Syncs transfer number settings with form. useObserveTransferNoSettings( warehouseTransferNumberPrefix, warehouseTransferNextNumber, ); return (
{/* ----------- Date ----------- */} {({ form, field: { value }, meta: { error, touched } }) => ( } inline={true} labelInfo={} className={classNames('form-group--date', CLASSES.FILL)} intent={inputIntent({ error, touched })} helperText={} > { form.setFieldValue('date', formattedDate); })} popoverProps={{ position: Position.BOTTOM_LEFT, minimal: true }} inputProps={{ leftIcon: , }} /> )} {/* ----------- Transfer number ----------- */} {({ form, field, meta: { error, touched } }) => ( } // labelInfo={} inline={true} className={classNames('form-group--transfer-no', CLASSES.FILL)} intent={inputIntent({ error, touched })} helperText={} > , }} tooltip={true} tooltipProps={{ content: ( ), position: Position.BOTTOM_LEFT, }} /> )} {/* ----------- Form Warehouse ----------- */} {({ form, field: { value }, meta: { error, touched } }) => ( } className={classNames( 'form-group--warehouse-transfer', CLASSES.FILL, )} inline={true} labelInfo={} intent={inputIntent({ error, touched })} helperText={} > { form.setFieldValue('from_warehouse_id', account.id); }} defaultSelectText={} selectedAccountId={value} popoverFill={true} allowCreate={true} /> )} {/* ----------- To Warehouse ----------- */} {({ form, field: { value }, meta: { error, touched } }) => ( } className={classNames( 'form-group--warehouse-transfer', CLASSES.FILL, )} inline={true} labelInfo={} intent={inputIntent({ error, touched })} helperText={} > { form.setFieldValue('to_warehouse_id', account.id); }} defaultSelectText={} selectedAccountId={value} popoverFill={true} allowCreate={true} /> )} {/*------------ reason -----------*/} {({ field, meta: { error, touched } }) => ( } className={'form-group--reason'} intent={inputIntent({ error, touched })} inline={true} helperText={} > )}
); } export default compose( withDialogActions, withSettings(({ warehouseTransferSettings }) => ({ warehouseTransferAutoIncrement: warehouseTransferSettings?.autoIncrement, warehouseTransferNextNumber: warehouseTransferSettings?.nextNumber, warehouseTransferNumberPrefix: warehouseTransferSettings?.numberPrefix, })), )(WarehouseTransferFormHeaderFields);