From a967ddd1cb4ef0afd95189fa19cc1a6bc90e26e4 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sun, 13 Nov 2016 14:10:46 +0000 Subject: [PATCH 01/10] quick and dirty support for custom welcome pages, with an example for geektime techfest --- .DS_Store | Bin 6148 -> 6148 bytes src/PageTypes.js | 1 + src/components/structures/LoggedInView.js | 10 ++++++++++ src/components/structures/MatrixChat.js | 22 +++++++++++++++++++-- src/components/views/avatars/BaseAvatar.js | 2 +- 5 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.DS_Store b/.DS_Store index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..d2a053831af5212a0eeadcbe98a90fb570842166 100644 GIT binary patch delta 128 zcmZoMXfc=|&e%3FQEZ}~q6iZM0|O%ig8)Nua#DVN4v@#dJTXy29VE`oki(G4kd&5! zB*#$9P{fc76Jp$$7|K4`K!jy8HwO;~W822W@640=MHEFr+7*B}0f>RdGaLY7hRu#5 G` if (!this.props.collapse_rhs) right_panel = break; + + case PageTypes.HomePage: + page_element = + if (!this.props.collapse_rhs) right_panel = + break; + case PageTypes.UserView: page_element = null; // deliberately null for now right_panel = diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 945088106b..9a3ff8f95c 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -410,6 +410,10 @@ module.exports = React.createClass({ this._setPage(PageTypes.RoomDirectory); this.notifyNewScreen('directory'); break; + case 'view_home_page': + this._setPage(PageTypes.HomePage); + this.notifyNewScreen('home'); + break; case 'view_create_chat': this._createChat(); break; @@ -629,7 +633,12 @@ module.exports = React.createClass({ )[0].roomId; self.setState({ready: true, currentRoomId: firstRoom, page_type: PageTypes.RoomView}); } else { - self.setState({ready: true, page_type: PageTypes.RoomDirectory}); + if (self.props.config.home_page) { + self.setState({ready: true, page_type: PageTypes.HomePage}); + } + else { + self.setState({ready: true, page_type: PageTypes.RoomDirectory}); + } } } else { self.setState({ready: true, page_type: PageTypes.RoomView}); @@ -649,7 +658,12 @@ module.exports = React.createClass({ } else { // There is no information on presentedId // so point user to fallback like /directory - self.notifyNewScreen('directory'); + if (self.props.config.home_page) { + self.notifyNewScreen('home'); + } + else { + self.notifyNewScreen('directory'); + } } dis.dispatch({action: 'focus_composer'}); @@ -703,6 +717,10 @@ module.exports = React.createClass({ dis.dispatch({ action: 'view_user_settings', }); + } else if (screen == 'home') { + dis.dispatch({ + action: 'view_home_page', + }); } else if (screen == 'directory') { dis.dispatch({ action: 'view_room_directory', diff --git a/src/components/views/avatars/BaseAvatar.js b/src/components/views/avatars/BaseAvatar.js index 47f0a76891..4025859478 100644 --- a/src/components/views/avatars/BaseAvatar.js +++ b/src/components/views/avatars/BaseAvatar.js @@ -138,7 +138,7 @@ module.exports = React.createClass({ const { name, idName, title, url, urls, width, height, resizeMethod, - defaultToInitialLetter, + defaultToInitialLetter, viewUserOnClick, ...otherProps } = this.props; From 69f6393ed9fbb19c7460ac9fac3a61af851e3794 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sun, 13 Nov 2016 14:13:21 +0000 Subject: [PATCH 02/10] try to make joining rooms more obvious --- src/components/views/rooms/RoomPreviewBar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/rooms/RoomPreviewBar.js b/src/components/views/rooms/RoomPreviewBar.js index baeae4807d..7c03ca89a4 100644 --- a/src/components/views/rooms/RoomPreviewBar.js +++ b/src/components/views/rooms/RoomPreviewBar.js @@ -146,7 +146,7 @@ module.exports = React.createClass({
You are trying to access { name }.
- Would you like to join in order to participate in the discussion? + Click here to join the discussion!
); From 8a5678efdd74f1997d65533352ec800d0482cc67 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sat, 19 Nov 2016 01:20:09 +0200 Subject: [PATCH 03/10] boldify the preview bar click --- src/components/views/rooms/RoomPreviewBar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/rooms/RoomPreviewBar.js b/src/components/views/rooms/RoomPreviewBar.js index 7c03ca89a4..d41fed04b4 100644 --- a/src/components/views/rooms/RoomPreviewBar.js +++ b/src/components/views/rooms/RoomPreviewBar.js @@ -146,7 +146,7 @@ module.exports = React.createClass({
You are trying to access { name }.
- Click here to join the discussion! + Click here to join the discussion!
); From 8c941b11cde686ab065d130db0438e9f89da63c2 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Thu, 2 Feb 2017 11:22:40 +0000 Subject: [PATCH 04/10] Use `mx_team_token` instead of config --- src/components/structures/LoggedInView.js | 2 +- src/components/structures/MatrixChat.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js index fb553535aa..63c4e9e0dc 100644 --- a/src/components/structures/LoggedInView.js +++ b/src/components/structures/LoggedInView.js @@ -196,7 +196,7 @@ export default React.createClass({ case PageTypes.HomePage: page_element = if (!this.props.collapse_rhs) right_panel = break; diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index f3fc5bf260..3cc34ba69c 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -694,7 +694,7 @@ module.exports = React.createClass({ )[0].roomId; self.setState({ready: true, currentRoomId: firstRoom, page_type: PageTypes.RoomView}); } else { - if (self.props.config.home_page) { + if (window.localStorage.getItem('mx_team_token')) { self.setState({ready: true, page_type: PageTypes.HomePage}); } else { From 7ece1ef8e7ccb99082a7d2499001453cdb9527fe Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Thu, 2 Feb 2017 11:42:34 +0000 Subject: [PATCH 05/10] rm .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index d2a053831af5212a0eeadcbe98a90fb570842166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKL5c!F3`|xJ!d^V?vA?iCXvBSiA6Qg`1wl}}&uQPaPur>_3oC2vn~5BQb&|B|F9DIf)&N&%lPSIY%nse0?^<=AT*{1eWcA2<#BpkRr142*V+2e#w4 cNXop%J Date: Thu, 2 Feb 2017 11:57:56 +0000 Subject: [PATCH 06/10] Pass RTS URL through --- src/components/structures/LoggedInView.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js index 63c4e9e0dc..feecc8ca4c 100644 --- a/src/components/structures/LoggedInView.js +++ b/src/components/structures/LoggedInView.js @@ -196,6 +196,7 @@ export default React.createClass({ case PageTypes.HomePage: page_element = if (!this.props.collapse_rhs) right_panel = From b9bc8eefd06dfbd49186f8672e0d47db96b511f9 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Thu, 2 Feb 2017 13:56:54 +0000 Subject: [PATCH 07/10] Typo --- src/components/structures/LoggedInView.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js index feecc8ca4c..7dd37683b7 100644 --- a/src/components/structures/LoggedInView.js +++ b/src/components/structures/LoggedInView.js @@ -196,7 +196,7 @@ export default React.createClass({ case PageTypes.HomePage: page_element = if (!this.props.collapse_rhs) right_panel = From efae5f6bf1166324e56cc03115679922b883ee83 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Fri, 3 Feb 2017 11:48:24 +0000 Subject: [PATCH 08/10] Use localStorage team token with fall-back on query parameter --- src/components/structures/LoggedInView.js | 4 +++- src/components/structures/MatrixChat.js | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js index 7dd37683b7..ba63794f60 100644 --- a/src/components/structures/LoggedInView.js +++ b/src/components/structures/LoggedInView.js @@ -42,6 +42,8 @@ export default React.createClass({ onRoomCreated: React.PropTypes.func, onUserSettingsClose: React.PropTypes.func, + teamToken: React.PropTypes.string, + // and lots and lots of other stuff. }, @@ -197,7 +199,7 @@ export default React.createClass({ page_element = if (!this.props.collapse_rhs) right_panel = break; diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 3cc34ba69c..b986cd88f0 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -190,6 +190,11 @@ module.exports = React.createClass({ if (this.props.config.sync_timeline_limit) { MatrixClientPeg.opts.initialSyncLimit = this.props.config.sync_timeline_limit; } + + // Use the locally-stored team token first, then as a fall-back, check to see if + // a referral link was used, which will contain a query parameter `team_token`. + this._teamToken = window.localStorage.getItem('mx_team_token') || + startingFragmentQueryParams.team_token; }, componentDidMount: function() { @@ -694,7 +699,7 @@ module.exports = React.createClass({ )[0].roomId; self.setState({ready: true, currentRoomId: firstRoom, page_type: PageTypes.RoomView}); } else { - if (window.localStorage.getItem('mx_team_token')) { + if (this._teamToken) { self.setState({ready: true, page_type: PageTypes.HomePage}); } else { @@ -1051,6 +1056,7 @@ module.exports = React.createClass({ onRoomIdResolved={this.onRoomIdResolved} onRoomCreated={this.onRoomCreated} onUserSettingsClose={this.onUserSettingsClose} + teamToken={this._teamToken} {...this.props} {...this.state} /> From c93b6c3c3461e8ac2bda3bf27adef9196cb8034f Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 7 Feb 2017 13:15:40 +0000 Subject: [PATCH 09/10] Style, fixes --- src/components/structures/MatrixChat.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index b986cd88f0..eea237c014 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -194,7 +194,7 @@ module.exports = React.createClass({ // Use the locally-stored team token first, then as a fall-back, check to see if // a referral link was used, which will contain a query parameter `team_token`. this._teamToken = window.localStorage.getItem('mx_team_token') || - startingFragmentQueryParams.team_token; + this.props.startingFragmentQueryParams.team_token; }, componentDidMount: function() { @@ -699,10 +699,9 @@ module.exports = React.createClass({ )[0].roomId; self.setState({ready: true, currentRoomId: firstRoom, page_type: PageTypes.RoomView}); } else { - if (this._teamToken) { + if (self._teamToken) { self.setState({ready: true, page_type: PageTypes.HomePage}); - } - else { + } else { self.setState({ready: true, page_type: PageTypes.RoomDirectory}); } } @@ -726,8 +725,7 @@ module.exports = React.createClass({ // so point user to fallback like /directory if (self.props.config.home_page) { self.notifyNewScreen('home'); - } - else { + } else { self.notifyNewScreen('directory'); } } From d5f6ecdc496fda661b9afb34e86d2a41d3e0e26f Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 7 Feb 2017 13:23:58 +0000 Subject: [PATCH 10/10] Use teamToken, not config when doing screen fallback --- src/components/structures/MatrixChat.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index eea237c014..db0b031453 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -723,7 +723,7 @@ module.exports = React.createClass({ } else { // There is no information on presentedId // so point user to fallback like /directory - if (self.props.config.home_page) { + if (self._teamToken) { self.notifyNewScreen('home'); } else { self.notifyNewScreen('directory');