Web: Client: InvitePanel: Added information messages

This commit is contained in:
Ilya Oleshko 2022-10-14 14:35:29 +03:00
parent 77e9e97451
commit f9ec5869cd
3 changed files with 31 additions and 13 deletions

View File

@ -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();
};

View File

@ -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))
);

View File

@ -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();