From 6ad210cde3dae525fb259348064664166a5f93dd Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Wed, 11 Nov 2015 02:01:48 +0100 Subject: [PATCH] support tracking URLs for settings, new & directory --- src/controllers/pages/MatrixChat.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/controllers/pages/MatrixChat.js b/src/controllers/pages/MatrixChat.js index 93464da526..c7a4f5d8f5 100644 --- a/src/controllers/pages/MatrixChat.js +++ b/src/controllers/pages/MatrixChat.js @@ -253,16 +253,19 @@ module.exports = { this.setState({ page_type: this.PageTypes.UserSettings, }); + this.notifyNewScreen('settings'); break; case 'view_create_room': this.setState({ page_type: this.PageTypes.CreateRoom, }); + this.notifyNewScreen('new'); break; case 'view_room_directory': this.setState({ page_type: this.PageTypes.RoomDirectory, }); + this.notifyNewScreen('directory'); break; case 'notifier_enabled': this.forceUpdate(); @@ -336,7 +339,7 @@ module.exports = { var theAlias = MatrixTools.getCanonicalAliasForRoom(room); if (theAlias) presentedId = theAlias; } - self.notifyNewScreen('room/'+presentedId); + self.notifyNewScreen('room/'+presentedId, true); dis.dispatch({action: 'focus_composer'}); } }); @@ -401,6 +404,18 @@ module.exports = { action: 'token_login', params: params }); + } else if (screen == 'new') { + dis.dispatch({ + action: 'view_create_room', + }); + } else if (screen == 'settings') { + dis.dispatch({ + action: 'view_user_settings', + }); + } else if (screen == 'directory') { + dis.dispatch({ + action: 'view_room_directory', + }); } else if (screen.indexOf('room/') == 0) { var roomString = screen.split('/')[1]; if (roomString[0] == '#') { @@ -424,9 +439,9 @@ module.exports = { } }, - notifyNewScreen: function(screen) { + notifyNewScreen: function(screen, onlyIfBlank) { if (this.props.onNewScreen) { - this.props.onNewScreen(screen); + this.props.onNewScreen(screen, onlyIfBlank); } } };