// @ts-nocheck import React from 'react'; import { InputGroup, FormGroup, Position, Classes } from '@blueprintjs/core'; import { DateInput } from '@blueprintjs/datetime'; import { FastField, ErrorMessage } from 'formik'; import { CustomersSelect, FormattedMessage as T } from '@/components'; import classNames from 'classnames'; import { CLASSES } from '@/constants/classes'; import { momentFormatter, tansformDateValue, inputIntent, handleDateChange, } from '@/utils'; import { customersFieldShouldUpdate, accountsFieldShouldUpdate } from './utils'; import { CurrencySelectList, CustomerSelectField, FFormGroup, AccountsSelect, FieldRequiredHint, Hint, } from '@/components'; import { ExpensesExchangeRateInputField } from './components'; import { ACCOUNT_PARENT_TYPE } from '@/constants/accountTypes'; import { useExpenseFormContext } from './ExpenseFormPageProvider'; /** * Expense form header. */ export default function ExpenseFormHeader() { const { currencies, accounts, customers } = useExpenseFormContext(); return (
{({ form, field: { value }, meta: { error, touched } }) => ( } labelInfo={} className={classNames('form-group--select-list', Classes.FILL)} intent={inputIntent({ error, touched })} helperText={} inline={true} > { form.setFieldValue('payment_date', formattedDate); })} popoverProps={{ position: Position.BOTTOM, minimal: true }} /> )} } labelInfo={} inline={true} fastField={true} shouldUpdate={accountsFieldShouldUpdate} > } filterByParentTypes={[ACCOUNT_PARENT_TYPE.CURRENT_ASSET]} allowCreate={true} fastField={true} shouldUpdate={accountsFieldShouldUpdate} fill={true} /> {({ form, field: { value }, meta: { error, touched } }) => ( } className={classNames( 'form-group--select-list', 'form-group--currency', Classes.FILL, )} intent={inputIntent({ error, touched })} helperText={} inline={true} > { form.setFieldValue('currency_code', currencyItem.currency_code); }} defaultSelectText={value} /> )} {/* ----------- Exchange rate ----------- */} {({ form, field, meta: { error, touched } }) => ( } className={classNames('form-group--ref_no', Classes.FILL)} intent={inputIntent({ error, touched })} helperText={} inline={true} > )} {/* ----------- Customer ----------- */}
); } /** * Customer select field of expense form. * @returns {React.ReactNode} */ function ExpenseFormCustomerSelect() { const { customers } = useExpenseFormContext(); return ( } labelInfo={} inline={true} name={'customer_id'} fastField={true} shouldUpdateDeps={{ items: customers }} shouldUpdate={customersFieldShouldUpdate} > } allowCreate={true} popoverFill={true} fastField={true} shouldUpdateDeps={{ items: customers }} shouldUpdate={customersFieldShouldUpdate} /> ); }