import { AutoComplete, Box, Option, Chip } from '@rocket.chat/fuselage'; import { useMutableCallback, useDebouncedValue } from '@rocket.chat/fuselage-hooks'; import React, { memo, useMemo, useState } from 'react'; import { useEndpointData } from '../../hooks/useEndpointData'; import UserAvatar from '../avatar/UserAvatar'; import Avatar from './Avatar'; 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) => ({ value: user.username, label: user.name }))) || [], [data], ); const onClickRemove = useMutableCallback((e) => { e.stopPropagation(); e.preventDefault(); props.onChange(e.currentTarget.value, 'remove'); }); return ( selected?.map((value) => ( {value} )) } renderItem={({ value, ...props }) => (