summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorDavid Lu <david.lu@hotmail.com>2016-05-12 07:50:25 -0400
committerJoram Wilander <jwawilander@gmail.com>2016-05-12 07:50:25 -0400
commita3cfdf04836bb5cef2c34626c07ce04349178792 (patch)
tree215cc9ce38d954a2a4af41d1a444b7b16b2db820 /webapp
parent1630892b4cb03ad2fb4fc5258a784a6adcf50779 (diff)
downloadchat-a3cfdf04836bb5cef2c34626c07ce04349178792.tar.gz
chat-a3cfdf04836bb5cef2c34626c07ce04349178792.tar.bz2
chat-a3cfdf04836bb5cef2c34626c07ce04349178792.zip
PLT-2786 Open Account Settings/Recent Mentions Shortcuts (#2957)
* Account settings shortcut added * Added constants * Added recent mentions shortcut
Diffstat (limited to 'webapp')
-rw-r--r--webapp/components/channel_header.jsx8
-rw-r--r--webapp/components/navbar_dropdown.jsx9
-rw-r--r--webapp/utils/constants.jsx4
3 files changed, 19 insertions, 2 deletions
diff --git a/webapp/components/channel_header.jsx b/webapp/components/channel_header.jsx
index ca3878d68..65d5a282a 100644
--- a/webapp/components/channel_header.jsx
+++ b/webapp/components/channel_header.jsx
@@ -47,6 +47,7 @@ export default class ChannelHeader extends React.Component {
this.searchMentions = this.searchMentions.bind(this);
this.showRenameChannelModal = this.showRenameChannelModal.bind(this);
this.hideRenameChannelModal = this.hideRenameChannelModal.bind(this);
+ this.openRecentMentions = this.openRecentMentions.bind(this);
const state = this.getStateFromStores();
state.showEditChannelPurposeModal = false;
@@ -82,6 +83,7 @@ export default class ChannelHeader extends React.Component {
PreferenceStore.addChangeListener(this.onListenerChange);
UserStore.addChangeListener(this.onListenerChange);
$('.sidebar--left .dropdown-menu').perfectScrollbar();
+ document.addEventListener('keydown', this.openRecentMentions);
}
componentWillUnmount() {
ChannelStore.removeChangeListener(this.onListenerChange);
@@ -89,6 +91,7 @@ export default class ChannelHeader extends React.Component {
SearchStore.removeSearchChangeListener(this.onListenerChange);
PreferenceStore.removeChangeListener(this.onListenerChange);
UserStore.removeChangeListener(this.onListenerChange);
+ document.removeEventListener('keydown', this.openRecentMentions);
}
onListenerChange() {
const newState = this.getStateFromStores();
@@ -139,6 +142,11 @@ export default class ChannelHeader extends React.Component {
is_mention_search: true
});
}
+ openRecentMentions(e) {
+ if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.keyCode === Constants.KeyCodes.M) {
+ this.searchMentions(e);
+ }
+ }
showRenameChannelModal(e) {
e.preventDefault();
diff --git a/webapp/components/navbar_dropdown.jsx b/webapp/components/navbar_dropdown.jsx
index 7f1cfce7c..32ac8f430 100644
--- a/webapp/components/navbar_dropdown.jsx
+++ b/webapp/components/navbar_dropdown.jsx
@@ -28,6 +28,7 @@ export default class NavbarDropdown extends React.Component {
this.handleAboutModal = this.handleAboutModal.bind(this);
this.aboutModalDismissed = this.aboutModalDismissed.bind(this);
this.onTeamChange = this.onTeamChange.bind(this);
+ this.openAccountSettings = this.openAccountSettings.bind(this);
this.state = {
showUserSettingsModal: false,
@@ -53,6 +54,7 @@ export default class NavbarDropdown extends React.Component {
});
TeamStore.addChangeListener(this.onTeamChange);
+ document.addEventListener('keydown', this.openAccountSettings);
}
onTeamChange() {
@@ -65,8 +67,13 @@ export default class NavbarDropdown extends React.Component {
componentWillUnmount() {
$(ReactDOM.findDOMNode(this.refs.dropdown)).off('hide.bs.dropdown');
TeamStore.removeChangeListener(this.onTeamChange);
+ document.removeEventListener('keydown', this.openAccountSettings);
+ }
+ openAccountSettings(e) {
+ if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.keyCode === Constants.KeyCodes.A) {
+ this.setState({showUserSettingsModal: true});
+ }
}
-
render() {
var teamLink = '';
var inviteLink = '';
diff --git a/webapp/utils/constants.jsx b/webapp/utils/constants.jsx
index 187b6cc95..fc5b917d3 100644
--- a/webapp/utils/constants.jsx
+++ b/webapp/utils/constants.jsx
@@ -549,7 +549,9 @@ export default {
ESCAPE: 27,
SPACE: 32,
TAB: 9,
- U: 85
+ U: 85,
+ A: 65,
+ M: 77
},
CODE_PREVIEW_MAX_FILE_SIZE: 500000, // 500 KB
HighlightedLanguages: {