feat: Financial statements enhancement.

This commit is contained in:
Ahmed Bouhuolia
2020-06-17 22:06:33 +02:00
parent 5c43f902e3
commit 3e15cd42c8
75 changed files with 1308 additions and 593 deletions

View File

@@ -0,0 +1,51 @@
import React, { useCallback, useState } from 'react';
import {
MenuItem,
Button,
} from '@blueprintjs/core';
import ListSelect from 'components/ListSelect';
import { FormattedMessage as T } from 'react-intl';
export default function ContactsListField({
contacts,
onContactSelected,
error,
initialContact,
defautlSelectText = (<T id={'select_contact'} />)
}) {
const [selectedContact, setSelectedContact] = useState(
initialContact || null
);
const contactTypeLabel = (contactType) => {
switch(contactType) {
case 'customer':
return 'Customer';
case 'vendor':
return 'Vendor';
}
};
// Contact item of select accounts field.
const contactItem = useCallback((item, { handleClick, modifiers, query }) => (
<MenuItem text={item.display_name} label={contactTypeLabel(item.contact_type)} key={item.id} onClick={handleClick} />
), []);
const onContactSelect = useCallback((contact) => {
setSelectedContact(contact.id);
onContactSelected && onContactSelected(contact.id);
}, [setSelectedContact, onContactSelected]);
return (
<ListSelect
items={contacts}
noResults={<MenuItem disabled={true} text='No results.' />}
itemRenderer={contactItem}
popoverProps={{ minimal: true }}
filterable={true}
onItemSelect={onContactSelect}
labelProp={'display_name'}
selectedItem={selectedContact}
selectedItemProp={'id'}
defaultText={defautlSelectText} />
);
}