From caf544b3a1212fa53ccfabf01b7a901ea9317bfd Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Tue, 17 Aug 2021 07:10:27 -0700 Subject: [PATCH] Fetch `hasGroupLink` from Redux in conversation details --- ts/state/smart/ConversationDetails.tsx | 17 ++++++++++------- ts/views/conversation_view.ts | 9 --------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/ts/state/smart/ConversationDetails.tsx b/ts/state/smart/ConversationDetails.tsx index 6d14b73f53..65a3c785cb 100644 --- a/ts/state/smart/ConversationDetails.tsx +++ b/ts/state/smart/ConversationDetails.tsx @@ -17,11 +17,11 @@ import { getGroupMemberships } from '../../util/getGroupMemberships'; import { getIntl } from '../selectors/user'; import { MediaItemType } from '../../components/LightboxGallery'; import { assert } from '../../util/assert'; +import { SignalService as Proto } from '../../protobuf'; export type SmartConversationDetailsProps = { addMembers: (conversationIds: ReadonlyArray) => Promise; conversationId: string; - hasGroupLink: boolean; loadRecentMediaItems: (limit: number) => void; setDisappearingMessages: (seconds: number) => void; showAllMedia: () => void; @@ -45,6 +45,8 @@ export type SmartConversationDetailsProps = { onLeave: () => void; }; +const ACCESS_ENUM = Proto.AccessControl.AccessRequired; + const mapStateToProps = ( state: StateType, props: SmartConversationDetailsProps @@ -56,14 +58,14 @@ const mapStateToProps = ( ' expected a conversation to be found' ); - const canEditGroupInfo = - conversation && conversation.canEditGroupInfo - ? conversation.canEditGroupInfo - : false; - - const isAdmin = Boolean(conversation?.areWeAdmin); + const canEditGroupInfo = Boolean(conversation.canEditGroupInfo); + const isAdmin = Boolean(conversation.areWeAdmin); const candidateContactsToAdd = getCandidateContactsForNewGroup(state); + const hasGroupLink = + Boolean(conversation.groupLink) && + conversation.accessControlAddFromInviteLink !== ACCESS_ENUM.UNSATISFIABLE; + return { ...props, canEditGroupInfo, @@ -73,6 +75,7 @@ const mapStateToProps = ( isAdmin, ...getGroupMemberships(conversation, conversationSelector), userAvatarData: conversation.avatars || [], + hasGroupLink, }; }; diff --git a/ts/views/conversation_view.ts b/ts/views/conversation_view.ts index f6692557e8..625e9d18be 100644 --- a/ts/views/conversation_view.ts +++ b/ts/views/conversation_view.ts @@ -3381,18 +3381,9 @@ Whisper.ConversationView = Whisper.View.extend({ ); }; - const ACCESS_ENUM = Proto.AccessControl.AccessRequired; - - const hasGroupLink = Boolean( - model.get('groupInviteLinkPassword') && - model.get('accessControl')?.addFromInviteLink !== - ACCESS_ENUM.UNSATISFIABLE - ); - const props = { addMembers: model.addMembersV2.bind(model), conversationId: model.get('id'), - hasGroupLink, loadRecentMediaItems: this.loadRecentMediaItems.bind(this), setDisappearingMessages: this.setDisappearingMessages.bind(this), showAllMedia: this.showAllMedia.bind(this),