From 84712018644d481f2c43ea7fecfbdcd1d9e41f8d Mon Sep 17 00:00:00 2001 From: gopienkonikita Date: Thu, 8 Feb 2024 16:51:53 +0300 Subject: [PATCH] Web: Files: InviteInput: fixed drop-down --- .../InvitePanel/sub-components/InviteInput.js | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js b/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js index 28bccea0c4..985e6a0d71 100644 --- a/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js +++ b/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js @@ -118,17 +118,19 @@ const InviteInput = ({ }; }; - const searchByQuery = async (value) => { + const searchByQuery = async (value, isValid) => { const query = value.trim(); - if (query.length >= minSearchValue && !isAddEmailPanelBlocked) { + if (query.length >= minSearchValue) { const filter = Filter.getFilterWithOutDisabledUser(); filter.search = query; const users = await getMembersList(roomId, filter); setUsersList(users.items); - setIsAddEmailPanelBlocked(false); + + if (users.total || isValid) setIsAddEmailPanelBlocked(false); + else setIsAddEmailPanelBlocked(true); } if (!query) { @@ -138,8 +140,8 @@ const InviteInput = ({ }; const debouncedSearch = useCallback( - debounce((value) => searchByQuery(value), 300), - [] + debounce((value, isValid) => searchByQuery(value, isValid), 300), + [], ); const onChange = (e) => { @@ -158,16 +160,18 @@ const InviteInput = ({ /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{0,}))$/g; const parts = getParts(value); + let isValid = false; for (let i = 0; i < parts.length; i += 1) { if (regex.test(parts[i])) { - setIsAddEmailPanelBlocked(false); - if (roomId !== -1) { - debouncedSearch(clearValue); - - return; - } + isValid = true; } } + + if (roomId !== -1) { + debouncedSearch(clearValue, isValid); + + return; + } }; const removeExist = (items) => {