Client: EditGroupStore: Fix moving manager to members without setting new manager

This commit is contained in:
Aleksandr Lushkin 2024-08-13 17:45:19 +02:00
parent 625a7aa5a6
commit 097adc82d5
2 changed files with 19 additions and 0 deletions

View File

@ -125,6 +125,17 @@ class EditGroupStore {
const addedIds = Array.from(this.addedMembersMap.keys());
const removedIds = Array.from(this.removedMembersMap.keys());
const oldManager = this.group.manager;
const oldManagerRemovedButRemainsAsMember =
oldManager &&
oldManager.id !== this.manager?.id &&
!this.removedMembersMap.has(oldManager.id);
// Requires when new group is without manager and old manager moved to members. updateGroup api method doesn't provide possibility to do it without setting new manager
if (this.manager === null && oldManagerRemovedButRemainsAsMember) {
await api.groups.removeGroupMembers(this.group.id, [oldManager.id]);
addedIds.push(oldManager.id);
}
await updateGroup(
this.group?.id,

View File

@ -146,6 +146,14 @@ export const addGroupMembers = (groupId: string, members: string) => {
});
};
export const removeGroupMembers = (groupId: string, membersIds: string[]) => {
return request({
method: "delete",
url: `/group/${groupId}/members`,
data: { id: groupId, members: membersIds },
}) as Promise<TGroup>;
};
// * Delete
export const deleteGroup = (groupId: string) => {