diff --git a/packages/client/src/components/panels/AddUsersPanel/index.js b/packages/client/src/components/panels/AddUsersPanel/index.js index 205dafe0fc..c0341b8be4 100644 --- a/packages/client/src/components/panels/AddUsersPanel/index.js +++ b/packages/client/src/components/panels/AddUsersPanel/index.js @@ -10,6 +10,7 @@ import PeopleSelector from "@docspace/client/src/components/PeopleSelector"; import { withTranslation } from "react-i18next"; import Loaders from "@docspace/common/components/Loaders"; import withLoader from "../../../HOCs/withLoader"; +import toastr from "@docspace/components/toast/toastr"; const AddUsersPanel = ({ isEncrypted, @@ -67,6 +68,9 @@ const AddUsersPanel = ({ } } + if (users.length > items.length) + toastr.warning("Some users are already in room"); + setDataItems(items); onClose(); }; diff --git a/packages/client/src/components/panels/InvitePanel/index.js b/packages/client/src/components/panels/InvitePanel/index.js index 496913e11a..59f052f712 100644 --- a/packages/client/src/components/panels/InvitePanel/index.js +++ b/packages/client/src/components/panels/InvitePanel/index.js @@ -5,6 +5,7 @@ import { withTranslation } from "react-i18next"; import Backdrop from "@docspace/components/backdrop"; import Aside from "@docspace/components/aside"; import Button from "@docspace/components/button"; +import toastr from "@docspace/components/toast/toastr"; import { StyledBlock, @@ -103,8 +104,9 @@ const InvitePanel = ({ try { await setRoomSecurity(roomId, data); onClose(); + toastr.success(`Users invited to ${selectedRoom.title}`); } catch (err) { - console.error(err); + toastr.error(err); } }; @@ -196,7 +198,11 @@ export default inject(({ auth, peopleStore, filesStore, dialogsStore }) => { getFolderInfo, }; })( - withTranslation(["InviteDialog", "SharingPanel", "Translations", "Common"])( - observer(InvitePanel) - ) + withTranslation([ + "InviteDialog", + "SharingPanel", + "Translations", + "Common", + "InfoPanel", + ])(observer(InvitePanel)) ); 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 c7d3f7c3a1..c09409391d 100644 --- a/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js +++ b/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js @@ -5,6 +5,7 @@ import { inject, observer } from "mobx-react"; import Avatar from "@docspace/components/avatar"; import TextInput from "@docspace/components/text-input"; import DropDownItem from "@docspace/components/drop-down-item"; +import toastr from "@docspace/components/toast/toastr"; import { parseAddresses } from "@docspace/components/utils/email"; @@ -101,6 +102,18 @@ const InviteInput = ({ debouncedSearch(clearValue); }; + const removeExist = (items) => { + const filtered = items.reduce((unique, o) => { + !unique.some((obj) => obj.email === o.email) && unique.push(o); + return unique; + }, []); + + if (items.length > filtered.length) + toastr.warning("Some users have already been added"); + + return filtered; + }; + const getItemContent = (item) => { const { avatar, displayName, email, id } = item; @@ -109,7 +122,8 @@ const InviteInput = ({ item.access = selectedAccess; const addUser = () => { - setInviteItems([item, ...inviteItems]); + const items = removeExist([item, ...inviteItems]); + setInviteItems(items); closeInviteInputPanel(); }; @@ -139,10 +153,7 @@ const InviteInput = ({ const newItems = items.length > 1 ? [...items, ...inviteItems] : [items, ...inviteItems]; - const filtered = newItems.reduce((unique, o) => { - !unique.some((obj) => obj.email === o.email) && unique.push(o); - return unique; - }, []); + const filtered = removeExist(newItems); setInviteItems(filtered); closeInviteInputPanel(); @@ -151,10 +162,7 @@ const InviteInput = ({ const addItems = (users) => { const items = [...users, ...inviteItems]; - const filtered = items.reduce((unique, o) => { - !unique.some((obj) => obj.email === o.email) && unique.push(o); - return unique; - }, []); + const filtered = removeExist(items); setInviteItems(filtered); closeInviteInputPanel();