diff --git a/background.html b/background.html index 85a217961..baf203d88 100644 --- a/background.html +++ b/background.html @@ -142,8 +142,6 @@ - - diff --git a/ts/components/conversation/UpdateGroupNameDialog.tsx b/ts/components/conversation/UpdateGroupNameDialog.tsx index bf568e278..85fd24b36 100644 --- a/ts/components/conversation/UpdateGroupNameDialog.tsx +++ b/ts/components/conversation/UpdateGroupNameDialog.tsx @@ -5,6 +5,7 @@ import { SessionModal } from '../session/SessionModal'; import { SessionButton, SessionButtonColor } from '../session/SessionButton'; import { Avatar, AvatarSize } from '../Avatar'; import { DefaultTheme, withTheme } from 'styled-components'; +import { SessionWrapperModal } from '../session/SessionWrapperModal'; interface Props { titleText: string; @@ -78,7 +79,7 @@ class UpdateGroupNameDialogInner extends React.Component { ); return ( - this.closeDialog()} @@ -112,7 +113,7 @@ class UpdateGroupNameDialogInner extends React.Component { buttonColor={SessionButtonColor.Green} /> - + ); } diff --git a/ts/components/session/conversation/SessionConversation.tsx b/ts/components/session/conversation/SessionConversation.tsx index 3ec085910..6ff7ee73a 100644 --- a/ts/components/session/conversation/SessionConversation.tsx +++ b/ts/components/session/conversation/SessionConversation.tsx @@ -1,14 +1,12 @@ // tslint:disable: no-backbone-get-set-outside-model import React from 'react'; -import { useDispatch } from "react-redux"; -import { updateConfirmModal } from '../../../state/ducks/modalDialog'; import classNames from 'classnames'; import { SessionCompositionBox, StagedAttachmentType } from './SessionCompositionBox'; -import { Constants } from '../../../session'; +import { ClosedGroup, Constants } from '../../../session'; import _ from 'lodash'; import { AttachmentUtil, GoogleChrome } from '../../../util'; import { ConversationHeaderWithDetails } from '../../conversation/ConversationHeader'; @@ -36,6 +34,7 @@ import { ConversationTypeEnum } from '../../../models/conversation'; import { SessionButtonColor } from '../SessionButton'; import { AddModeratorsDialog } from '../../conversation/ModeratorsAddDialog'; import { RemoveModeratorsDialog } from '../../conversation/ModeratorsRemoveDialog'; +import { UpdateGroupNameDialog } from '../../conversation/UpdateGroupNameDialog'; @@ -495,7 +494,59 @@ export class SessionConversation extends React.Component { }, onUpdateGroupName: () => { - window.Whisper.events.trigger('updateGroupName', conversation); + // warrick: remove trigger once everything is cleaned up + // window.Whisper.events.trigger('updateGroupName', conversation); + const avatarPath = conversation.getAvatarPath(); + const groupName = conversation.getName(); + const groupId = conversation.id; + const members = conversation.get('members') || []; + const isPublic = conversation.isPublic(); + + let isAdmin = true; + let titleText; + + if (isPublic) { + // fix the title + titleText = window.i18n('updateGroupDialogTitle', groupName); + // I'd much prefer to integrate mods with groupAdmins + // but lets discuss first... + isAdmin = conversation.isAdmin(window.storage.get('primaryDevicePubKey')); + } + + const onClose = () => { + this.setState({ ...this.state, modal: null }) + } + + const onUpdateGroupNameSubmit = (groupName: string, avatar: string) => { + ClosedGroup.initiateGroupUpdate( + groupId, + groupName, + members, + avatar + ) + } + + this.setState({ + ...this.state, + modal: ( + + ) + }) + }, onUpdateGroupMembers: async () => { if (conversation.isMediumGroup()) {