Files
bigcapital/packages/webapp/src/containers/Customers/CustomersUniversalSearch.tsx
2023-06-14 19:51:14 +02:00

54 lines
1.3 KiB
TypeScript

// @ts-nocheck
import intl from 'react-intl-universal';
import { AbilitySubject, CustomerAction } from '@/constants/abilityOption';
import withDrawerActions from '@/containers/Drawer/withDrawerActions';
import { RESOURCES_TYPES } from '@/constants/resourcesTypes';
import { DRAWERS } from '@/constants/drawers';
function CustomerUniversalSearchSelectComponent({
resourceType,
resourceId,
onAction,
// #withDrawerActions
openDrawer,
}) {
if (resourceType === RESOURCES_TYPES.CUSTOMER) {
openDrawer(DRAWERS.CUSTOMER_DETAILS, { customerId: resourceId });
onAction && onAction();
}
return null;
}
const CustomerUniversalSearchSelectAction = withDrawerActions(
CustomerUniversalSearchSelectComponent,
);
/**
* Transformes customers to search.
* @param {*} contact
* @returns
*/
const customersToSearch = (contact) => ({
id: contact.id,
text: contact.display_name,
label: contact.formatted_balance,
reference: contact,
});
/**
* Binds universal search invoice configure.
*/
export const universalSearchCustomerBind = () => ({
resourceType: RESOURCES_TYPES.CUSTOMER,
optionItemLabel: intl.get('customers'),
selectItemAction: CustomerUniversalSearchSelectAction,
itemSelect: customersToSearch,
permission: {
ability: CustomerAction.View,
subject: AbilitySubject.Customer,
},
});