Implemented ability to quickly add a user to a group

This commit is contained in:
Alvaro 2022-09-26 10:24:52 -06:00 committed by GitHub
parent 190cd9408b
commit 22bf3ebcc0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 855 additions and 70 deletions

View file

@ -3,6 +3,7 @@
import React from 'react';
import { connect } from 'react-redux';
import { sortBy } from 'lodash';
import type { StateType } from '../reducer';
import { mapDispatchToProps } from '../actions';
@ -11,6 +12,7 @@ import { ConversationDetails } from '../../components/conversation/conversation-
import {
getConversationByIdSelector,
getConversationByUuidSelector,
getAllComposableConversations,
} from '../selectors/conversations';
import { getGroupMemberships } from '../../util/getGroupMemberships';
import { getActiveCallState } from '../selectors/calling';
@ -84,6 +86,7 @@ const mapStateToProps = (
);
const canEditGroupInfo = Boolean(conversation.canEditGroupInfo);
const canAddNewMembers = Boolean(conversation.canAddNewMembers);
const isAdmin = Boolean(conversation.areWeAdmin);
const hasGroupLink =
@ -98,11 +101,25 @@ const mapStateToProps = (
const badges = getBadgesSelector(state)(conversation.badges);
const groupsInCommon =
conversation.type === 'direct'
? getAllComposableConversations(state).filter(
c =>
c.type === 'group' &&
(c.memberships ?? []).some(
member => member.uuid === conversation.uuid
)
)
: [];
const groupsInCommonSorted = sortBy(groupsInCommon, 'title');
return {
...props,
areWeASubscriber: getAreWeASubscriber(state),
badges,
canEditGroupInfo,
canAddNewMembers,
conversation: {
...conversation,
...getConversationColorAttributes(conversation),
@ -114,6 +131,7 @@ const mapStateToProps = (
...groupMemberships,
userAvatarData: conversation.avatars || [],
hasGroupLink,
groupsInCommon: groupsInCommonSorted,
isGroup: conversation.type === 'group',
theme: getTheme(state),
renderChooseGroupMembersModal,