// @ts-nocheck import React from 'react'; import intl from 'react-intl-universal'; import { MenuItem } from '@blueprintjs/core'; import { Icon, Choose, T } from '@/components'; import { RESOURCES_TYPES } from '@/constants/resourcesTypes'; import { AbilitySubject, SaleReceiptAction } from '@/constants/abilityOption'; import withDrawerActions from '@/containers/Drawer/withDrawerActions'; import { DRAWERS } from '@/constants/drawers'; /** * Receipt universal search item select action. */ function ReceiptUniversalSearchSelectComponent({ // #ownProps resourceType, resourceId, onAction, // #withDrawerActions openDrawer, }) { if (resourceType === RESOURCES_TYPES.RECEIPT) { openDrawer(DRAWERS.RECEIPT_DETAILS, { receiptId: resourceId }); onAction && onAction(); } return null; } export const ReceiptUniversalSearchSelect = withDrawerActions( ReceiptUniversalSearchSelectComponent, ); /** * Status accessor. */ function ReceiptStatus({ receipt }) { return ( ); } /** * Receipt universal search item. */ export function ReceiptUniversalSearchItem( item, { handleClick, modifiers, query }, ) { return ( {item.text} {item.reference.receipt_number}{' '} {item.reference.formatted_receipt_date} } label={ <> {item.reference.formatted_amount} > } onClick={handleClick} className={'universal-search__item--receipt'} /> ); } /** * Transformes receipt resource item to search item. */ const transformReceiptsToSearch = (receipt) => ({ id: receipt.id, text: receipt.customer.display_name, label: receipt.formatted_amount, reference: receipt, }); /** * Receipt universal search bind configuration. */ export const universalSearchReceiptBind = () => ({ resourceType: RESOURCES_TYPES.RECEIPT, optionItemLabel: intl.get('receipts'), selectItemAction: ReceiptUniversalSearchSelect, itemRenderer: ReceiptUniversalSearchItem, itemSelect: transformReceiptsToSearch, permission: { ability: SaleReceiptAction.View, subject: AbilitySubject.Receipt, }, });