import React from 'react'; import { MenuItem } from '@blueprintjs/core'; import { formattedAmount } from 'utils'; import { T, Icon, Choose, If } from 'components'; import intl from 'react-intl-universal'; import { RESOURCES_TYPES } from 'common/resourcesTypes'; import withDrawerActions from '../../Drawer/withDrawerActions'; /** * Universal search bill item select action. */ function BillUniversalSearchSelectComponent({ // #ownProps resourceType, resourceId, // #withDrawerActions openDrawer, }) { if (resourceType === RESOURCES_TYPES.INVOICE) { openDrawer('bill-drawer', { billId: resourceId }); } return null; } export const BillUniversalSearchSelect = withDrawerActions( BillUniversalSearchSelectComponent, ); /** * Status accessor. */ export function BillStatus({ bill }) { return ( {intl.get('overdue_by', { overdue: bill.overdue_days })} {intl.get('due_in', { due: bill.remaining_days })} {intl.get('day_partially_paid', { due: formattedAmount(bill.due_amount, bill.currency_code), })} ); } /** * Bill universal search item. */ export function BillUniversalSearchItem( item, { handleClick, modifiers, query }, ) { return (
{item.text}
{item.reference.bill_number}{' '} {item.reference.formatted_bill_date} } label={ <>
{item.reference.formatted_amount}
} onClick={handleClick} className={'universal-search__item--bill'} /> ); } const billsToSearch = (bill) => ({ text: bill.vendor.display_name, reference: bill, }); export const universalSearchBillBind = () => ({ resourceType: RESOURCES_TYPES.BILL, optionItemLabel: 'Bills', selectItemAction: BillUniversalSearchSelect, itemRenderer: BillUniversalSearchItem, itemSelect: billsToSearch, });