import React, { useCallback, useMemo } from 'react';
import { MenuItem } from '@blueprintjs/core';
import classNames from 'classnames';
import { CLASSES } from 'common/classes';
import ListSelect from 'components/ListSelect';
import { FormattedMessage as T } from 'react-intl';
export default function ContactsListField({
contacts,
onContactSelected,
selectedContactId,
selectedContactType,
defautlSelectText = ,
popoverFill = false,
}) {
// Contact item of select accounts field.
const contactRenderer = useCallback(
(item, { handleClick, modifiers, query }) => (
),
[],
);
const onContactSelect = useCallback(
(contact) => {
onContactSelected && onContactSelected(contact);
},
[onContactSelected],
);
const items = useMemo(
() =>
contacts.map((contact) => ({
...contact,
_id: `${contact.id}_${contact.contact_type}`,
})),
[contacts],
);
return (
}
itemRenderer={contactRenderer}
filterable={true}
onItemSelect={onContactSelect}
labelProp={'display_name'}
selectedItem={`${selectedContactId}_${selectedContactType}`}
selectedItemProp={'_id'}
defaultText={defautlSelectText}
popoverProps={{ minimal: true, usePortal: !popoverFill }}
className={classNames(CLASSES.FORM_GROUP_LIST_SELECT, {
[CLASSES.SELECT_LIST_FILL_POPOVER]: popoverFill,
})}
/>
);
}