// @ts-nocheck import React from 'react'; import intl from 'react-intl-universal'; import { MenuItem } from '@blueprintjs/core'; import { Choose, T, Icon } from '@/components'; import { RESOURCES_TYPES } from '@/constants/resourcesTypes'; import { AbilitySubject, SaleEstimateAction } from '@/constants/abilityOption'; import withDrawerActions from '@/containers/Drawer/withDrawerActions'; import { DRAWERS } from '@/constants/drawers'; /** * Estimate universal search item select action. */ function EstimateUniversalSearchSelectComponent({ // #ownProps resourceType, resourceId, // #withDrawerActions openDrawer, }) { if (resourceType === RESOURCES_TYPES.ESTIMATE) { openDrawer(DRAWERS.ESTIMATE_DETAILS, { estimateId: resourceId }); } return null; } export const EstimateUniversalSearchSelect = withDrawerActions( EstimateUniversalSearchSelectComponent, ); /** * Status accessor. */ export const EstimateStatus = ({ estimate }) => ( ); /** * Estimate universal search item. */ export function EstimateUniversalSearchItem( item, { handleClick, modifiers, query }, ) { return (
{item.text}
{item.reference.estimate_number}{' '} {item.reference.formatted_estimate_date} } label={ <>
{item.reference.formatted_amount}
} onClick={handleClick} className={'universal-search__item--estimate'} /> ); } /** * Transformes the estimates to search items. */ const transformEstimatesToSearch = (estimate) => ({ id: estimate.id, text: estimate.customer.display_name, label: estimate.formatted_balance, reference: estimate, }); /** * Estimate resource universal search bind configure. */ export const universalSearchEstimateBind = () => ({ resourceType: RESOURCES_TYPES.ESTIMATE, optionItemLabel: intl.get('estimates'), selectItemAction: EstimateUniversalSearchSelect, itemRenderer: EstimateUniversalSearchItem, itemSelect: transformEstimatesToSearch, permission: { ability: SaleEstimateAction.View, subject: AbilitySubject.Estimate, }, });