diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js
index 8fd464e80d..3687764712 100644
--- a/src/components/structures/RightPanel.js
+++ b/src/components/structures/RightPanel.js
@@ -192,26 +192,6 @@ export default class RightPanel extends React.Component {
panel = ;
}
- // TODO: either include this in the DOM again, or move it to other component
- if (this.props.groupId && this.state.isUserPrivilegedInGroup) {
- // inviteGroup =
- isPhaseGroup ? (
-
-
-
-
- { _t('Invite to this community') }
-
- ) : (
-
-
-
-
- { _t('Add rooms to this community') }
-
- );
- }
-
const classes = classNames("mx_RightPanel", "mx_fadable", {
"collapsed": this.props.collapsed,
"mx_fadable_faded": this.props.disabled,
diff --git a/src/components/views/groups/GroupMemberList.js b/src/components/views/groups/GroupMemberList.js
index 38c679a5b5..411ed138d4 100644
--- a/src/components/views/groups/GroupMemberList.js
+++ b/src/components/views/groups/GroupMemberList.js
@@ -19,6 +19,9 @@ import { _t } from '../../../languageHandler';
import sdk from '../../../index';
import GroupStore from '../../../stores/GroupStore';
import PropTypes from 'prop-types';
+import { showGroupInviteDialog } from '../../../GroupAddressPicker';
+import AccessibleButton from '../elements/AccessibleButton';
+import TintableSvg from '../elements/TintableSvg';
const INITIAL_LOAD_NUM_MEMBERS = 30;
@@ -135,6 +138,16 @@ export default React.createClass({
;
},
+ onInviteToGroupButtonClick() {
+ showGroupInviteDialog(this.props.groupId).then(() => {
+ dis.dispatch({
+ action: 'view_right_panel_phase',
+ phase: RightPanel.Phase.GroupMemberList,
+ groupId: this.props.groupId,
+ });
+ });
+ },
+
render: function() {
const GeminiScrollbarWrapper = sdk.getComponent("elements.GeminiScrollbarWrapper");
if (this.state.fetching || this.state.fetchingInvitedMembers) {
@@ -162,13 +175,27 @@ export default React.createClass({
{ this.makeGroupMemberTiles(this.state.searchQuery, this.state.invitedMembers) }
:
;
+ let inviteButton;
+ if (GroupStore.isUserPrivileged(this.props.groupId)) {
+ inviteButton = (
+
+
+
+ { _t('Invite to this community') }
+ );
+ }
+
return (
+
+
+
- { inputBox }
+ { inviteButton }
{ joined }
{ invited }
+ { inputBox }
);
},
diff --git a/src/components/views/groups/GroupRoomList.js b/src/components/views/groups/GroupRoomList.js
index cfd2b806d4..968e10eb61 100644
--- a/src/components/views/groups/GroupRoomList.js
+++ b/src/components/views/groups/GroupRoomList.js
@@ -18,6 +18,9 @@ import { _t } from '../../../languageHandler';
import sdk from '../../../index';
import GroupStore from '../../../stores/GroupStore';
import PropTypes from 'prop-types';
+import { showGroupAddRoomDialog } from '../../../GroupAddressPicker';
+import AccessibleButton from '../elements/AccessibleButton';
+import TintableSvg from '../elements/TintableSvg';
const INITIAL_LOAD_NUM_ROOMS = 30;
@@ -90,6 +93,12 @@ export default React.createClass({
this.setState({ searchQuery: ev.target.value });
},
+ onAddRoomToGroupButtonClick() {
+ showGroupAddRoomDialog(this.props.groupId).then(() => {
+ this.forceUpdate();
+ });
+ },
+
makeGroupRoomTiles: function(query) {
const GroupRoomTile = sdk.getComponent("groups.GroupRoomTile");
query = (query || "").toLowerCase();
@@ -120,6 +129,15 @@ export default React.createClass({
return null;
}
+ let inviteButton;
+ if (GroupStore.isUserPrivileged(this.props.groupId)) {
+ inviteButton = (
+
+
+
+ { _t('Add rooms to this community') }
+ );
+ }
const inputBox = (