update groupname dialog functioning. todo: delete old code.

pull/1665/head
Warrick Corfe-Tan 4 years ago
parent 7dc318aa3d
commit fd3b2246b0

@ -142,8 +142,6 @@
<script type='text/javascript' src='js/views/invite_contacts_dialog_view.js'></script> <script type='text/javascript' src='js/views/invite_contacts_dialog_view.js'></script>
<script type='text/javascript' src='js/views/admin_leave_closed_group_dialog_view.js'></script> <script type='text/javascript' src='js/views/admin_leave_closed_group_dialog_view.js'></script>
<script type='text/javascript' src='js/views/moderators_add_dialog_view.js'></script>
<script type='text/javascript' src='js/views/moderators_remove_dialog_view.js'></script>
<script type='text/javascript' src='js/views/user_details_dialog_view.js'></script> <script type='text/javascript' src='js/views/user_details_dialog_view.js'></script>
<script type='text/javascript' src='js/views/session_id_reset_view.js'></script> <script type='text/javascript' src='js/views/session_id_reset_view.js'></script>

@ -5,6 +5,7 @@ import { SessionModal } from '../session/SessionModal';
import { SessionButton, SessionButtonColor } from '../session/SessionButton'; import { SessionButton, SessionButtonColor } from '../session/SessionButton';
import { Avatar, AvatarSize } from '../Avatar'; import { Avatar, AvatarSize } from '../Avatar';
import { DefaultTheme, withTheme } from 'styled-components'; import { DefaultTheme, withTheme } from 'styled-components';
import { SessionWrapperModal } from '../session/SessionWrapperModal';
interface Props { interface Props {
titleText: string; titleText: string;
@ -78,7 +79,7 @@ class UpdateGroupNameDialogInner extends React.Component<Props, State> {
); );
return ( return (
<SessionModal <SessionWrapperModal
title={titleText} title={titleText}
// tslint:disable-next-line: no-void-expression // tslint:disable-next-line: no-void-expression
onClose={() => this.closeDialog()} onClose={() => this.closeDialog()}
@ -112,7 +113,7 @@ class UpdateGroupNameDialogInner extends React.Component<Props, State> {
buttonColor={SessionButtonColor.Green} buttonColor={SessionButtonColor.Green}
/> />
</div> </div>
</SessionModal> </SessionWrapperModal>
); );
} }

@ -1,14 +1,12 @@
// tslint:disable: no-backbone-get-set-outside-model // tslint:disable: no-backbone-get-set-outside-model
import React from 'react'; import React from 'react';
import { useDispatch } from "react-redux";
import { updateConfirmModal } from '../../../state/ducks/modalDialog';
import classNames from 'classnames'; import classNames from 'classnames';
import { SessionCompositionBox, StagedAttachmentType } from './SessionCompositionBox'; import { SessionCompositionBox, StagedAttachmentType } from './SessionCompositionBox';
import { Constants } from '../../../session'; import { ClosedGroup, Constants } from '../../../session';
import _ from 'lodash'; import _ from 'lodash';
import { AttachmentUtil, GoogleChrome } from '../../../util'; import { AttachmentUtil, GoogleChrome } from '../../../util';
import { ConversationHeaderWithDetails } from '../../conversation/ConversationHeader'; import { ConversationHeaderWithDetails } from '../../conversation/ConversationHeader';
@ -36,6 +34,7 @@ import { ConversationTypeEnum } from '../../../models/conversation';
import { SessionButtonColor } from '../SessionButton'; import { SessionButtonColor } from '../SessionButton';
import { AddModeratorsDialog } from '../../conversation/ModeratorsAddDialog'; import { AddModeratorsDialog } from '../../conversation/ModeratorsAddDialog';
import { RemoveModeratorsDialog } from '../../conversation/ModeratorsRemoveDialog'; import { RemoveModeratorsDialog } from '../../conversation/ModeratorsRemoveDialog';
import { UpdateGroupNameDialog } from '../../conversation/UpdateGroupNameDialog';
@ -495,7 +494,59 @@ export class SessionConversation extends React.Component<Props, State> {
}, },
onUpdateGroupName: () => { 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: (
<UpdateGroupNameDialog
titleText={titleText}
pubkey={conversation.id}
isPublic={conversation.isPublic()}
groupName={groupName}
okText={window.i18n('ok')}
cancelText={window.i18n('cancel')}
isAdmin={isAdmin}
i18n={window.i18n}
onSubmit={onUpdateGroupNameSubmit}
onClose={onClose}
// avatar stuff
avatarPath={avatarPath || ''}
theme={this.props.theme}
/>
)
})
}, },
onUpdateGroupMembers: async () => { onUpdateGroupMembers: async () => {
if (conversation.isMediumGroup()) { if (conversation.isMediumGroup()) {

Loading…
Cancel
Save