diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js
index 18adcda6ad..acd92e3f4d 100644
--- a/src/components/structures/RightPanel.js
+++ b/src/components/structures/RightPanel.js
@@ -98,11 +98,15 @@ module.exports = React.createClass({
return;
}
- // call ChatInviteDialog
- dis.dispatch({
- action: 'view_invite',
- roomId: this.props.roomId,
- });
+ if (this.state.phase === this.Phase.GroupMemberList) {
+ // TODO: display UserPickeDialog
+ } else {
+ // call UserPickerDialog
+ dis.dispatch({
+ action: 'view_invite',
+ roomId: this.props.roomId,
+ });
+ }
},
onRoomStateMember: function(ev, state, member) {
@@ -169,7 +173,6 @@ module.exports = React.createClass({
const NotificationPanel = sdk.getComponent('structures.NotificationPanel');
const FilePanel = sdk.getComponent('structures.FilePanel');
const TintableSvg = sdk.getComponent("elements.TintableSvg");
- let buttonGroup;
let inviteGroup;
let panel;
@@ -212,50 +215,72 @@ module.exports = React.createClass({
}
+ let headerButtons = [];
if (this.props.roomId) {
- buttonGroup =
-
-
- { membersBadge ? membersBadge : }
-
- { membersHighlight }
-
-
-
-
- { filesHighlight }
-
-
-
-
- { notificationsHighlight }
-
-
-
-
-
;
+ headerButtons.push(
+
+ { membersBadge ? membersBadge : }
+
+ { membersHighlight }
+
+ );
+ headerButtons.push(
+
+
+
+ { filesHighlight }
+
+ );
+ headerButtons.push(
+
+
+
+ { notificationsHighlight }
+
+ );
+ }
+
+ if (this.props.roomId || this.props.groupId) {
+ // Hiding the right panel hides it completely and relies on an 'expand' button
+ // being put in the RoomHeader or GroupView header, so only show the minimise
+ // button on these 2 screens or you won't be able to re-expand the panel.
+ headerButtons.push(
+
+
+
+ );
}
if (!this.props.collapsed) {
if (this.props.roomId && this.state.phase == this.Phase.RoomMemberList) {
panel =
} else if (this.props.groupId && this.state.phase == this.Phase.GroupMemberList) {
- panel =
+ panel = ;
+ inviteGroup = (
+
+
+
+
+ { _t('Invite to this group') }
+
+ );
} else if (this.state.phase == this.Phase.RoomMemberInfo) {
const MemberInfo = sdk.getComponent('rooms.MemberInfo');
panel =
} else if (this.state.phase == this.Phase.GroupMemberInfo) {
const GroupMemberInfo = sdk.getComponent('groups.GroupMemberInfo');
- panel =
+ panel = ;
} else if (this.state.phase == this.Phase.NotificationPanel) {
- panel =
+ panel = ;
} else if (this.state.phase == this.Phase.FilePanel) {
- panel =
+ panel = ;
}
}
@@ -271,7 +296,9 @@ module.exports = React.createClass({
return (
- { buttonGroup }
+
+ {headerButtons}
+
{ panel }
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index cecb248ce1..81f10e1627 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -205,5 +205,6 @@
"Remember, you can always set an email address in user settings if you change your mind.": "Remember, you can always set an email address in user settings if you change your mind.",
"To return to your account in future you need to set a password ": "To return to your account in future you need to set a password ",
"Set Password": "Set Password",
- "Couldn't load home page": "Couldn't load home page"
+ "Couldn't load home page": "Couldn't load home page",
+ "Invite to this group": "Invite to this group"
}
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss
index ae9f97b223..7045188d4e 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss
@@ -70,6 +70,10 @@ limitations under the License.
flex: 1;
}
+.mx_GroupView_header_rightCol {
+ display: flex;
+}
+
.mx_GroupView_saveButton, .mx_GroupView_cancelButton {
display: table-cell;
}