Merge pull request #1507 from Bilb/fix-mulltiple-closed-group-creat

Allow allow one group creation at a time
pull/1516/head
Audric Ackermann 4 years ago committed by GitHub
commit 5e3578f27b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -32,11 +32,13 @@ export class MessageView extends React.Component {
// //////////// Management /////////////
// /////////////////////////////////////
/**
* Returns true if the group was indead created
*/
async function createClosedGroup(
groupName: string,
groupMembers: Array<ContactType>,
onSuccess: any
) {
groupMembers: Array<ContactType>
): Promise<boolean> {
// Validate groupName and groupMembers length
if (groupName.length === 0) {
ToastUtils.pushToastError(
@ -44,13 +46,13 @@ async function createClosedGroup(
window.i18n('invalidGroupNameTooShort')
);
return;
return false;
} else if (groupName.length > window.CONSTANTS.MAX_GROUP_NAME_LENGTH) {
ToastUtils.pushToastError(
'invalidGroupName',
window.i18n('invalidGroupNameTooLong')
);
return;
return false;
}
// >= because we add ourself as a member AFTER this. so a 10 group is already invalid as it will be 11 with ourself
@ -61,23 +63,19 @@ async function createClosedGroup(
'pickClosedGroupMember',
window.i18n('pickClosedGroupMember')
);
return;
return false;
} else if (groupMembers.length >= window.CONSTANTS.CLOSED_GROUP_SIZE_LIMIT) {
ToastUtils.pushToastError(
'closedGroupMaxSize',
window.i18n('closedGroupMaxSize')
);
return;
return false;
}
const groupMemberIds = groupMembers.map(m => m.id);
await createClosedGroupV2(groupName, groupMemberIds);
if (onSuccess) {
onSuccess();
}
return true;
}

@ -469,8 +469,20 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
groupName: string,
groupMembers: Array<ContactType>
) {
await MainViewController.createClosedGroup(groupName, groupMembers, () => {
this.handleToggleOverlay(undefined);
if (this.state.loading) {
window.log.warn('Closed group creation already in progress');
return;
}
this.setState({ loading: true }, async () => {
const groupCreated = await MainViewController.createClosedGroup(
groupName,
groupMembers
);
if (groupCreated) {
this.handleToggleOverlay(undefined);
}
this.setState({ loading: false });
});
}

Loading…
Cancel
Save