diff --git a/client/src/components/AccountsMultiSelect.js b/client/src/components/AccountsMultiSelect.js index 726bd7f18..e852fad7b 100644 --- a/client/src/components/AccountsMultiSelect.js +++ b/client/src/components/AccountsMultiSelect.js @@ -1,76 +1,30 @@ -import React, { useMemo, useCallback, useState } from 'react'; -import { omit } from 'lodash'; -import { MenuItem, Button } from '@blueprintjs/core'; -import MultiSelect from 'components/MultiSelect'; -import { FormattedMessage as T } from 'components'; - -export default function AccountsMultiSelect({ accounts, onAccountSelected }) { - const [selectedAccounts, setSelectedAccounts] = useState({}); - - const isAccountSelect = useCallback( - (accountId) => { - return 'undefined' !== typeof selectedAccounts[accountId]; - }, - [selectedAccounts], - ); - - // Account item of select accounts field. - const accountItem = useCallback( - (item, { handleClick, modifiers, query }) => { - return ( - - ); - }, - [isAccountSelect], - ); - - const countSelectedAccounts = useMemo( - () => Object.values(selectedAccounts).length, - [selectedAccounts], - ); - - const onAccountSelect = useCallback( - (account) => { - const selected = { - ...(!isAccountSelect(account.id) - ? { - ...selectedAccounts, - [account.id]: true, - } - : { - ...omit(selectedAccounts, [account.id]), - }), - }; - setSelectedAccounts({ ...selected }); - onAccountSelected && onAccountSelected(selected); - }, - [setSelectedAccounts, selectedAccounts, isAccountSelect, onAccountSelected], - ); +import React from 'react'; +import { MenuItem } from '@blueprintjs/core'; +import { MultiSelect } from './MultiSelectTaggable'; +export default function AccountsMultiSelect({ ...multiSelectProps }) { return ( } />} - itemRenderer={accountItem} + itemRenderer={( + item, + { active, selected, handleClick, modifiers, query }, + ) => { + return ( + + ); + }} popoverProps={{ minimal: true }} - filterable={true} - onItemSelect={onAccountSelect} - > -