import React, { useCallback, useRef } from 'react'; import classNames from 'classnames'; import { FormGroup, Classes, Intent } from '@blueprintjs/core'; import intl from 'react-intl-universal'; import ItemsSuggestField from 'components/ItemsSuggestField'; import { useCellAutoFocus } from 'hooks'; /** * Items list cell. */ export default function ItemsListCell({ column: { id, filterSellable, filterPurchasable, fieldProps, formGroupProps }, row: { index }, cell: { value: initialValue }, payload: { items, updateData, errors, autoFocus }, }) { const fieldRef = useRef(); // Auto-focus the items list input field. useCellAutoFocus(fieldRef, autoFocus, id, index); // Handle the item selected. const handleItemSelected = useCallback( (item) => { updateData(index, id, item.id); }, [updateData, index, id], ); const error = errors?.[index]?.[id]; return ( (fieldRef.current = ref), placeholder: intl.get('enter_an_item'), }} openOnKeyDown={true} blurOnSelectClose={false} {...fieldProps} /> ); }