// @ts-nocheck import React from 'react'; import intl from 'react-intl-universal'; import { ErrorMessage, useFormikContext } from 'formik'; import { Classes, FormGroup, RadioGroup, Radio, InputGroup, Spinner, } from '@blueprintjs/core'; import classNames from 'classnames'; import { x } from '@xstyled/emotion'; import { FormattedMessage as T, If, FFormGroup, FSelect, FRadioGroup, FInputGroup } from '@/components'; import { handleStringChange } from '@/utils'; import { FieldRequiredHint } from '@/components'; import { CLASSES } from '@/constants/classes'; import allocateLandedCostType from '@/constants/allocateLandedCostType'; import AllocateLandedCostFormBody from './AllocateLandedCostFormBody'; import { allocateCostToEntries, resetAllocatedCostEntries, } from './utils'; import { useAllocateLandedConstDialogContext } from './AllocateLandedCostDialogProvider'; /** * Allocate landed cost form fields. */ export default function AllocateLandedCostFormFields() { // Allocated landed cost dialog. const { costTransactionEntries, landedCostTransactions, isLandedCostTransactionsLoading } = useAllocateLandedConstDialogContext(); const { values, setFieldValue, form } = useFormikContext(); // Handle transaction type select change. const handleTransactionTypeChange = (type) => { const { items } = values; setFieldValue('transaction_type', type.value); setFieldValue('transaction_id', ''); setFieldValue('transaction_entry_id', ''); setFieldValue('amount', ''); setFieldValue('items', resetAllocatedCostEntries(items)); }; // Handle transaction select change. const handleTransactionChange = (transaction) => { const { items } = values; setFieldValue('transaction_id', transaction.id); setFieldValue('transaction_entry_id', ''); setFieldValue('amount', ''); setFieldValue('items', resetAllocatedCostEntries(items)); }; // Handle transaction entry select change. const handleTransactionEntryChange = (entry) => { const { id, unallocated_cost_amount: unallocatedAmount } = entry; const { items, allocation_method } = values; setFieldValue('amount', unallocatedAmount); setFieldValue('transaction_entry_id', id); setFieldValue( 'items', allocateCostToEntries(unallocatedAmount, allocation_method, items), ); }; return (