Client: Added recalculation if the added user already exists.

This commit is contained in:
Tatiana Lopaeva 2024-08-12 14:21:04 +03:00
parent b61a439419
commit 250f7f4c23
2 changed files with 14 additions and 6 deletions

View File

@ -95,6 +95,7 @@ const InviteInput = ({
standalone,
isPaidUserAccess,
setInvitePaidUsersCount,
isPaidUserLimit,
}) => {
const isPublicRoomType = roomType === RoomsType.PublicRoom;
@ -226,10 +227,15 @@ const InviteInput = ({
};
const removeExist = (items) => {
const filtered = items.reduce((unique, o) => {
!unique.some((obj) =>
obj.isGroup ? obj.id === o.id : obj.email === o.email,
) && unique.push(o);
const filtered = items.reduce((unique, current) => {
const isUnique = !unique.some((obj) =>
obj.isGroup ? obj.id === current.id : obj.email === current.email,
);
if (!isUnique && isPaidUserAccess(current.access))
setInvitePaidUsersCount(-1);
isUnique && unique.push(current);
return unique;
}, []);
@ -601,7 +607,7 @@ export default inject(
} = dialogsStore;
const { culture: language, standalone } = settingsStore;
const { isPaidUserLimit } = currentQuotaStore;
return {
language,
setInviteLanguage,
@ -615,6 +621,7 @@ export default inject(
standalone,
isPaidUserAccess,
setInvitePaidUsersCount,
isPaidUserLimit,
};
},
)(

View File

@ -438,6 +438,7 @@ class DialogsStore {
setInvitePaidUsersCount = (modifier = 1) => {
this.invitePaidUsersCount = this.invitePaidUsersCount + modifier;
if (this.invitePaidUsersCount === -1) this.invitePaidUsersCount = 0;
};
isPaidUserAccess = (selectedAccess) => {
@ -458,7 +459,7 @@ class DialogsStore {
const isCurrAccessPaid = this.isPaidUserAccess(item.access);
let modifier = 0;
if (isPrevAccessPaid && !isCurrAccessPaid) modifier = -1;
if (!isPrevAccessPaid && isCurrAccessPaid) modifier = 1;