PLT-2786 Open Account Settings/Recent Mentions Shortcuts (#2957)

* Account settings shortcut added

* Added constants

* Added recent mentions shortcut
Этот коммит содержится в:
David Lu
2016-05-12 07:50:25 -04:00
коммит произвёл Joram Wilander
родитель 1630892b4c
Коммит a3cfdf0483
3 изменённых файлов: 19 добавлений и 2 удалений

Просмотреть файл

@@ -47,6 +47,7 @@ export default class ChannelHeader extends React.Component {
this.searchMentions = this.searchMentions.bind(this); this.searchMentions = this.searchMentions.bind(this);
this.showRenameChannelModal = this.showRenameChannelModal.bind(this); this.showRenameChannelModal = this.showRenameChannelModal.bind(this);
this.hideRenameChannelModal = this.hideRenameChannelModal.bind(this); this.hideRenameChannelModal = this.hideRenameChannelModal.bind(this);
this.openRecentMentions = this.openRecentMentions.bind(this);
const state = this.getStateFromStores(); const state = this.getStateFromStores();
state.showEditChannelPurposeModal = false; state.showEditChannelPurposeModal = false;
@@ -82,6 +83,7 @@ export default class ChannelHeader extends React.Component {
PreferenceStore.addChangeListener(this.onListenerChange); PreferenceStore.addChangeListener(this.onListenerChange);
UserStore.addChangeListener(this.onListenerChange); UserStore.addChangeListener(this.onListenerChange);
$('.sidebar--left .dropdown-menu').perfectScrollbar(); $('.sidebar--left .dropdown-menu').perfectScrollbar();
document.addEventListener('keydown', this.openRecentMentions);
} }
componentWillUnmount() { componentWillUnmount() {
ChannelStore.removeChangeListener(this.onListenerChange); ChannelStore.removeChangeListener(this.onListenerChange);
@@ -89,6 +91,7 @@ export default class ChannelHeader extends React.Component {
SearchStore.removeSearchChangeListener(this.onListenerChange); SearchStore.removeSearchChangeListener(this.onListenerChange);
PreferenceStore.removeChangeListener(this.onListenerChange); PreferenceStore.removeChangeListener(this.onListenerChange);
UserStore.removeChangeListener(this.onListenerChange); UserStore.removeChangeListener(this.onListenerChange);
document.removeEventListener('keydown', this.openRecentMentions);
} }
onListenerChange() { onListenerChange() {
const newState = this.getStateFromStores(); const newState = this.getStateFromStores();
@@ -139,6 +142,11 @@ export default class ChannelHeader extends React.Component {
is_mention_search: true is_mention_search: true
}); });
} }
openRecentMentions(e) {
if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.keyCode === Constants.KeyCodes.M) {
this.searchMentions(e);
}
}
showRenameChannelModal(e) { showRenameChannelModal(e) {
e.preventDefault(); e.preventDefault();

Просмотреть файл

@@ -28,6 +28,7 @@ export default class NavbarDropdown extends React.Component {
this.handleAboutModal = this.handleAboutModal.bind(this); this.handleAboutModal = this.handleAboutModal.bind(this);
this.aboutModalDismissed = this.aboutModalDismissed.bind(this); this.aboutModalDismissed = this.aboutModalDismissed.bind(this);
this.onTeamChange = this.onTeamChange.bind(this); this.onTeamChange = this.onTeamChange.bind(this);
this.openAccountSettings = this.openAccountSettings.bind(this);
this.state = { this.state = {
showUserSettingsModal: false, showUserSettingsModal: false,
@@ -53,6 +54,7 @@ export default class NavbarDropdown extends React.Component {
}); });
TeamStore.addChangeListener(this.onTeamChange); TeamStore.addChangeListener(this.onTeamChange);
document.addEventListener('keydown', this.openAccountSettings);
} }
onTeamChange() { onTeamChange() {
@@ -65,8 +67,13 @@ export default class NavbarDropdown extends React.Component {
componentWillUnmount() { componentWillUnmount() {
$(ReactDOM.findDOMNode(this.refs.dropdown)).off('hide.bs.dropdown'); $(ReactDOM.findDOMNode(this.refs.dropdown)).off('hide.bs.dropdown');
TeamStore.removeChangeListener(this.onTeamChange); 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() { render() {
var teamLink = ''; var teamLink = '';
var inviteLink = ''; var inviteLink = '';

Просмотреть файл

@@ -549,7 +549,9 @@ export default {
ESCAPE: 27, ESCAPE: 27,
SPACE: 32, SPACE: 32,
TAB: 9, TAB: 9,
U: 85 U: 85,
A: 65,
M: 77
}, },
CODE_PREVIEW_MAX_FILE_SIZE: 500000, // 500 KB CODE_PREVIEW_MAX_FILE_SIZE: 500000, // 500 KB
HighlightedLanguages: { HighlightedLanguages: {