import { MultiSelectFiltered, Box, Option, OptionAvatar, OptionContent, OptionDescription, Chip, CheckBox } from '@rocket.chat/fuselage'; import { useDebouncedValue } from '@rocket.chat/fuselage-hooks'; import React, { memo, useMemo, useState } from 'react'; import { useEndpointData } from '../../hooks/useEndpointData'; import UserAvatar from '../avatar/UserAvatar'; const query = (term = '') => ({ selector: JSON.stringify({ term }) }); const UserAutoCompleteMultiple = (props) => { const [filter, setFilter] = useState(''); const debouncedFilter = useDebouncedValue(filter, 1000); const { value: data } = useEndpointData( 'users.autocomplete', useMemo(() => query(debouncedFilter), [debouncedFilter]), ); const options = useMemo(() => (data && data.items.map((user) => [user.username, user.name])) || [], [data]); const renderItem = ({ value, label, selected, ...props }) => ( ); const renderSelected = ({ value, onMouseDown }) => ( {value} ); return ( ); }; export default memo(UserAutoCompleteMultiple);