use isKickedFromGroup to disable ui components

pull/1074/head
Audric Ackermann 5 years ago
parent 67b6ef7ac9
commit f48136678e
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -196,6 +196,7 @@
value: item.get('seconds'),
})),
hasNickname: !!this.model.getNickname(),
isKickedFromGroup: this.model.get('isKickedFromGroup'),
onSetDisappearingMessages: seconds =>
this.setDisappearingMessages(seconds),
@ -294,6 +295,7 @@
amMod: this.model.isModerator(
window.storage.get('primaryDevicePubKey')
),
isKickedFromGroup: this.model.get('isKickedFromGroup'),
timerOptions: Whisper.ExpirationTimerOptions.map(item => ({
name: item.getName(),

@ -14,13 +14,18 @@
const convos = window.getConversations().models;
if(convo.isPublic){
if (convo.isPublic) {
this.friends = convos.filter(
d => !!d && d.isFriend() && d.isPrivate() && !d.isMe()
);
} else {
this.friends = convos.filter(
d => !!d && d.isFriend() && d.isPrivate() && !d.isMe() && !convo.get('members').includes(d.id)
d =>
!!d &&
d.isFriend() &&
d.isPrivate() &&
!d.isMe() &&
!convo.get('members').includes(d.id)
);
}

@ -62,6 +62,7 @@ interface Props {
isOnline?: boolean;
selectedMessages: any;
isKickedFromGroup: boolean;
onSetDisappearingMessages: (seconds: number) => void;
onDeleteMessages: () => void;
@ -145,6 +146,7 @@ export class ConversationHeader extends React.Component<Props> {
subscriberCount,
isFriendRequestPending,
isMe,
isKickedFromGroup,
name,
} = this.props;
@ -179,7 +181,7 @@ export class ConversationHeader extends React.Component<Props> {
}
const textEl =
text === '' ? null : (
text === '' || isKickedFromGroup ? null : (
<span className="module-conversation-header__title-text">{text}</span>
);
@ -298,6 +300,7 @@ export class ConversationHeader extends React.Component<Props> {
isPublic,
isRss,
isGroup,
isKickedFromGroup,
amMod,
onDeleteMessages,
onDeleteContact,
@ -320,20 +323,20 @@ export class ConversationHeader extends React.Component<Props> {
<MenuItem onClick={onCopyPublicKey}>{copyIdLabel}</MenuItem>
) : null}
<MenuItem onClick={onDeleteMessages}>{i18n('deleteMessages')}</MenuItem>
{amMod ? (
{amMod && !isKickedFromGroup ? (
<MenuItem onClick={onAddModerators}>{i18n('addModerators')}</MenuItem>
) : null}
{amMod ? (
{amMod && !isKickedFromGroup ? (
<MenuItem onClick={onRemoveModerators}>
{i18n('removeModerators')}
</MenuItem>
) : null}
{amMod ? (
{amMod && !isKickedFromGroup ? (
<MenuItem onClick={onUpdateGroupName}>
{i18n('editGroupNameOrPicture')}
</MenuItem>
) : null}
{isPrivateGroup ? (
{isPrivateGroup && !isKickedFromGroup ? (
<MenuItem onClick={onLeaveGroup}>{i18n('leaveGroup')}</MenuItem>
) : null}
{/* TODO: add delete group */}
@ -391,7 +394,7 @@ export class ConversationHeader extends React.Component<Props> {
}
public render() {
const { id } = this.props;
const { id, isKickedFromGroup } = this.props;
const triggerId = `conversation-${id}-${Date.now()}`;
return (
@ -407,7 +410,7 @@ export class ConversationHeader extends React.Component<Props> {
{/*isPrivateGroup ? this.renderMemberCount() : null*/}
</div>
</div>
{this.renderExpirationLength()}
{!isKickedFromGroup && this.renderExpirationLength()}
{!this.props.isRss && this.renderAvatar()}
@ -436,6 +439,8 @@ export class ConversationHeader extends React.Component<Props> {
isBlocked,
isMe,
isGroup,
isFriend,
isKickedFromGroup,
isArchived,
isPublic,
isRss,
@ -452,7 +457,6 @@ export class ConversationHeader extends React.Component<Props> {
// hasNickname,
// onClearNickname,
// onChangeNickname,
isFriend,
} = this.props;
if (isPublic || isRss) {
@ -464,20 +468,21 @@ export class ConversationHeader extends React.Component<Props> {
const blockTitle = isBlocked ? i18n('unblockUser') : i18n('blockUser');
const blockHandler = isBlocked ? onUnblockUser : onBlockUser;
const disappearingMessagesMenuItem = isFriend && (
<SubMenu title={disappearingTitle}>
{(timerOptions || []).map(item => (
<MenuItem
key={item.value}
onClick={() => {
onSetDisappearingMessages(item.value);
}}
>
{item.name}
</MenuItem>
))}
</SubMenu>
);
const disappearingMessagesMenuItem = isFriend &&
!isKickedFromGroup && (
<SubMenu title={disappearingTitle}>
{(timerOptions || []).map(item => (
<MenuItem
key={item.value}
onClick={() => {
onSetDisappearingMessages(item.value);
}}
>
{item.name}
</MenuItem>
))}
</SubMenu>
);
const showMembersMenuItem = isGroup && (
<MenuItem onClick={onShowGroupMembers}>{i18n('showMembers')}</MenuItem>
);

@ -21,6 +21,7 @@ interface Props {
isPublic: boolean;
isAdmin: boolean;
amMod: boolean;
isKickedFromGroup: boolean;
onGoBack: () => void;
onInviteFriends: () => void;
@ -212,14 +213,15 @@ export class SessionGroupSettings extends React.Component<Props, any> {
onLeaveGroup,
isPublic,
isAdmin,
isKickedFromGroup,
amMod,
} = this.props;
const { documents, media, onItemClick } = this.state;
const showMemberCount = !!(memberCount && memberCount > 0);
const hasDisappearingMessages = !isPublic;
const hasDisappearingMessages = !isPublic && !isKickedFromGroup;
const leaveGroupString = isPublic
? window.i18n('leaveOpenGroup')
: window.i18n('leaveClosedGroup');
: isKickedFromGroup ? window.i18n('youAreKickedFromThisGroup') : window.i18n('leaveClosedGroup');
const disappearingMessagesOptions = timerOptions.map(option => {
return {
@ -230,8 +232,8 @@ export class SessionGroupSettings extends React.Component<Props, any> {
};
});
const showUpdateGroupNameButton = isPublic ? amMod : isAdmin;
const showUpdateGroupMembersButton = !isPublic && isAdmin;
const showUpdateGroupNameButton = isPublic && !isKickedFromGroup ? amMod : isAdmin;
const showUpdateGroupMembersButton = !isPublic && !isKickedFromGroup && isAdmin;
return (
<div className="group-settings">
@ -292,6 +294,7 @@ export class SessionGroupSettings extends React.Component<Props, any> {
buttonColor={SessionButtonColor.Danger}
buttonType={SessionButtonType.SquareOutline}
onClick={onLeaveGroup}
disabled={isKickedFromGroup}
/>
</div>
);
@ -305,9 +308,10 @@ export class SessionGroupSettings extends React.Component<Props, any> {
avatarPath,
isAdmin,
isPublic,
isKickedFromGroup,
} = this.props;
const showInviteFriends = isPublic || isAdmin;
const showInviteFriends = (isPublic || isAdmin) && !isKickedFromGroup;
return (
<div className="group-settings-header">

Loading…
Cancel
Save