Open group settings when the group is created

This commit is contained in:
Luke Barnard 2017-11-06 18:02:50 +00:00
parent f1db564506
commit 36cd22663a
4 changed files with 13 additions and 3 deletions

View file

@ -392,6 +392,8 @@ export default React.createClass({
propTypes: { propTypes: {
groupId: PropTypes.string.isRequired, groupId: PropTypes.string.isRequired,
// Whether this is the first time the group admin is viewing the group
groupIsNew: PropTypes.bool,
}, },
childContextTypes: { childContextTypes: {
@ -422,7 +424,7 @@ export default React.createClass({
componentWillMount: function() { componentWillMount: function() {
this._changeAvatarComponent = null; this._changeAvatarComponent = null;
this._initGroupStore(this.props.groupId); this._initGroupStore(this.props.groupId, true);
MatrixClientPeg.get().on("Group.myMembership", this._onGroupMyMembership); MatrixClientPeg.get().on("Group.myMembership", this._onGroupMyMembership);
}, },
@ -449,7 +451,7 @@ export default React.createClass({
this.setState({membershipBusy: false}); this.setState({membershipBusy: false});
}, },
_initGroupStore: function(groupId) { _initGroupStore: function(groupId, firstInit) {
this._groupStore = GroupStoreCache.getGroupStore(MatrixClientPeg.get(), groupId); this._groupStore = GroupStoreCache.getGroupStore(MatrixClientPeg.get(), groupId);
this._groupStore.registerListener(() => { this._groupStore.registerListener(() => {
const summary = this._groupStore.getSummary(); const summary = this._groupStore.getSummary();
@ -472,6 +474,9 @@ export default React.createClass({
), ),
error: null, error: null,
}); });
if (this.props.groupIsNew && firstInit) {
this._onEditClick();
}
}); });
this._groupStore.on('error', (err) => { this._groupStore.on('error', (err) => {
this.setState({ this.setState({

View file

@ -301,6 +301,7 @@ export default React.createClass({
case PageTypes.GroupView: case PageTypes.GroupView:
page_element = <GroupView page_element = <GroupView
groupId={this.props.currentGroupId} groupId={this.props.currentGroupId}
isNew={this.props.currentGroupIsNew}
collapsedRhs={this.props.collapseRhs} collapsedRhs={this.props.collapseRhs}
/>; />;
if (!this.props.collapseRhs) right_panel = <RightPanel groupId={this.props.currentGroupId} disabled={this.props.rightDisabled} />; if (!this.props.collapseRhs) right_panel = <RightPanel groupId={this.props.currentGroupId} disabled={this.props.rightDisabled} />;

View file

@ -490,7 +490,10 @@ module.exports = React.createClass({
case 'view_group': case 'view_group':
{ {
const groupId = payload.group_id; const groupId = payload.group_id;
this.setState({currentGroupId: groupId}); this.setState({
currentGroupId: groupId,
currentGroupIsNew: payload.group_is_new,
});
this._setPage(PageTypes.GroupView); this._setPage(PageTypes.GroupView);
this.notifyNewScreen('group/' + groupId); this.notifyNewScreen('group/' + groupId);
} }

View file

@ -81,6 +81,7 @@ export default React.createClass({
dis.dispatch({ dis.dispatch({
action: 'view_group', action: 'view_group',
group_id: result.group_id, group_id: result.group_id,
group_is_new: true,
}); });
this.props.onFinished(true); this.props.onFinished(true);
}).catch((e) => { }).catch((e) => {