Update NewConversationDialog.tsx

This commit is contained in:
talksik
2022-05-31 08:19:35 -05:00
parent e4958342c0
commit 4ca7661f15
@@ -27,6 +27,7 @@ import UserDetailRow from '../subcomponents/UserDetailRow';
import { blueGrey } from '@mui/material/colors'; import { blueGrey } from '@mui/material/colors';
import { searchUsers } from '../firebase/firestore'; import { searchUsers } from '../firebase/firestore';
import useAuth from '../providers/AuthProvider'; import useAuth from '../providers/AuthProvider';
import useSearch from '../providers/SearchProvider';
import { useSnackbar } from 'notistack'; import { useSnackbar } from 'notistack';
export default function NewConversationDialog({ export default function NewConversationDialog({
@@ -41,9 +42,7 @@ export default function NewConversationDialog({
const { enqueueSnackbar } = useSnackbar(); const { enqueueSnackbar } = useSnackbar();
const { user } = useAuth(); const { user } = useAuth();
const [searchVal, setSearchVal] = useState<string>(''); const { userResults, searchQuery, searchUsers, isSearching } = useSearch();
const [searchUsersResults, setSearchUsersResults] = useState<User[]>([]);
const [searching, setSearching] = useState<boolean>(false);
const [selectedUsers, setSelectedUsers] = useState<User[]>([]); const [selectedUsers, setSelectedUsers] = useState<User[]>([]);
@@ -54,28 +53,11 @@ export default function NewConversationDialog({
[], [],
); );
const [, cancel] = useDebounce(
async () => {
if (searchVal) {
let results = await searchUsers(searchVal);
results = results.filter((userResult) => userResult.id !== user.uid);
setSearchUsersResults(results);
console.warn('searched users', results);
}
setSearching(false);
},
1000,
[searchVal, enqueueSnackbar, setSearchUsersResults, user],
);
const handleChangeSearchInput = useCallback( const handleChangeSearchInput = useCallback(
(e: React.ChangeEvent<HTMLInputElement>, newValue: string) => { (e: React.ChangeEvent<HTMLInputElement>, newValue: string) => {
setSearching(true); searchUsers(newValue);
setSearchVal(newValue);
}, },
[setSearching, setSearchVal], [searchUsers],
); );
const renderOption = useCallback( const renderOption = useCallback(
@@ -165,12 +147,12 @@ export default function NewConversationDialog({
<Autocomplete <Autocomplete
multiple multiple
loading={searching} loading={isSearching}
includeInputInList includeInputInList
id="tags-outlined" id="tags-outlined"
autoHighlight autoHighlight
onInputChange={handleChangeSearchInput} onInputChange={handleChangeSearchInput}
options={searchUsersResults} options={userResults}
renderOption={renderOption} renderOption={renderOption}
getOptionLabel={(option) => (typeof option === 'string' ? option : option.displayName)} getOptionLabel={(option) => (typeof option === 'string' ? option : option.displayName)}
value={selectedUsers} value={selectedUsers}
@@ -178,7 +160,7 @@ export default function NewConversationDialog({
filterSelectedOptions filterSelectedOptions
isOptionEqualToValue={(optionUser, valueUser) => optionUser.id === valueUser.id} isOptionEqualToValue={(optionUser, valueUser) => optionUser.id === valueUser.id}
filterOptions={(options) => options} filterOptions={(options) => options}
inputValue={searchVal} inputValue={searchQuery}
renderInput={(params) => ( renderInput={(params) => (
<TextField <TextField
// eslint-disable-next-line jsx-a11y/no-autofocus // eslint-disable-next-line jsx-a11y/no-autofocus