import React from 'react'; import { MenuItem } from '@blueprintjs/core'; import intl from 'react-intl-universal'; import { Icon } from 'components'; import { RESOURCES_TYPES } from 'common/resourcesTypes'; import withDrawerActions from '../../Drawer/withDrawerActions'; import { highlightText } from 'utils'; import { AbilitySubject, PaymentMadeAction } from '../../../common/abilityOption'; /** * Universal search bill item select action. */ function PaymentMadeUniversalSearchSelectComponent({ // #ownProps resourceType, resourceId, // #withDrawerActions openDrawer, }) { if (resourceType === RESOURCES_TYPES.PAYMENT_MADE) { openDrawer('payment-made-detail-drawer', { paymentMadeId: resourceId }); } return null; } export const PaymentMadeUniversalSearchSelect = withDrawerActions( PaymentMadeUniversalSearchSelectComponent, ); /** * Payment made universal search item. */ export function PaymentMadeUniversalSearchItem( { text, label, reference }, { handleClick, modifiers, query }, ) { return (
{highlightText(text, query)}
{reference.payment_number && ( <> {highlightText(reference.payment_number, query)} )} {highlightText(reference.formatted_payment_date, query)} } label={
{label}
} onClick={handleClick} className={'universal-search__item--payment-made'} /> ); } /** * Payment made resource item to search item. */ const paymentMadeToSearch = (payment) => ({ id: payment.id, text: payment.vendor.display_name, label: payment.formatted_amount, reference: payment, }); /** * Binds universal search payment made configure. */ export const universalSearchPaymentMadeBind = () => ({ resourceType: RESOURCES_TYPES.PAYMENT_MADE, optionItemLabel: intl.get('payment_mades'), selectItemAction: PaymentMadeUniversalSearchSelect, itemRenderer: PaymentMadeUniversalSearchItem, itemSelect: paymentMadeToSearch, permission: { ability: PaymentMadeAction.View, subject: AbilitySubject.PaymentMade, }, });