mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-27 17:02:03 +00:00
Code cleanup for hotkeys
This commit is contained in:
parent
9034573d72
commit
cb0bfc050a
@ -12,14 +12,14 @@ export default class GlobalHotkeys extends Component {
|
||||
classNames = ['global-hotkey-binder'];
|
||||
|
||||
/**
|
||||
* Contains a set of elements that we deem to be inelligible in any circumstance. Targets
|
||||
* Contains a set of elements that we deem to be inEligible in any circumstance. Targets
|
||||
* with these tags will never be passed through for global hotkeys
|
||||
* @type {Set<string>}
|
||||
*/
|
||||
inElligibleTargets = new Set(['INPUT', 'TEXTAREA']);
|
||||
inEligibleTargets = new Set(['INPUT', 'TEXTAREA']);
|
||||
|
||||
/**
|
||||
* Service that assists with actually triggering the actions tied to a particular elligible
|
||||
* Service that assists with actually triggering the actions tied to a particular Eligible
|
||||
* target hotkey
|
||||
* @type {Ember.Service}
|
||||
*/
|
||||
@ -31,10 +31,10 @@ export default class GlobalHotkeys extends Component {
|
||||
* @param {HTMLElement} target - target element
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isElligibleTarget(target: HTMLElement): boolean {
|
||||
isEligibleTarget(target: HTMLElement): boolean {
|
||||
return (
|
||||
!!target &&
|
||||
!get(this, 'inElligibleTargets').has(target.tagName) &&
|
||||
!get(this, 'inEligibleTargets').has(target.tagName) &&
|
||||
!(target.tagName === 'DIV' && target.attributes.getNamedItem('contenteditable'))
|
||||
);
|
||||
}
|
||||
@ -45,9 +45,9 @@ export default class GlobalHotkeys extends Component {
|
||||
*/
|
||||
onKeyUp(e: KeyboardEvent) {
|
||||
// KeyboardEvent.target is not well defined in our TS, casting any to return as HTMLElement
|
||||
const target: HTMLElement = <any>e.target;
|
||||
const target = <HTMLElement>e.target;
|
||||
|
||||
if (this.isElligibleTarget(target)) {
|
||||
if (this.isEligibleTarget(target)) {
|
||||
get(this, 'hotKeys').applyKeyMapping(e.keyCode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -55,7 +55,8 @@ export default Component.extend({
|
||||
* Sets to the focus to the input in the search bar
|
||||
*/
|
||||
setSearchBarFocus() {
|
||||
this.$('input.nacho-global-search__text-input:eq(1)').trigger('focus');
|
||||
const searchBar = document.getElementsByClassName('nacho-global-search__text-input')[1];
|
||||
searchBar && searchBar.focus();
|
||||
},
|
||||
|
||||
didInsertElement() {
|
||||
@ -64,9 +65,9 @@ export default Component.extend({
|
||||
get(this, 'hotKeys').registerKeyMapping(Keyboard.Slash, this.setSearchBarFocus.bind(this));
|
||||
},
|
||||
|
||||
didDestroyElement() {
|
||||
willDestroyElement() {
|
||||
this._super(...arguments);
|
||||
get(this, 'hotKeys').clearKeyMapping(Keyboard.Slash);
|
||||
get(this, 'hotKeys').unregisterKeyMapping(Keyboard.Slash);
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
||||
@ -29,7 +29,7 @@ export default class HotKeys extends Service {
|
||||
* this lets us clear that out
|
||||
* @param keyCode - keycode that has been registered
|
||||
*/
|
||||
clearKeyMapping(keyCode: Keyboard): void {
|
||||
unregisterKeyMapping(keyCode: Keyboard): void {
|
||||
get(this, 'keyMappings')[keyCode] = noop;
|
||||
}
|
||||
|
||||
@ -45,9 +45,3 @@ export default class HotKeys extends Service {
|
||||
action && action();
|
||||
}
|
||||
}
|
||||
|
||||
declare module '@ember/service' {
|
||||
interface Registry {
|
||||
'hot-keys': HotKeys;
|
||||
}
|
||||
}
|
||||
|
||||
2
wherehows-web/app/typings/app/services.d.ts
vendored
2
wherehows-web/app/typings/app/services.d.ts
vendored
@ -6,6 +6,7 @@ declare module '@ember/service' {
|
||||
import BannerService from 'wherehows-web/services/banners';
|
||||
import Notifications from 'wherehows-web/services/notifications';
|
||||
import UserLookup from 'wherehows-web/services/user-lookup';
|
||||
import HotKeys from 'wherehows-web/services/hot-keys';
|
||||
|
||||
// eslint-disable-next-line typescript/interface-name-prefix
|
||||
interface Registry {
|
||||
@ -16,5 +17,6 @@ declare module '@ember/service' {
|
||||
notifications: Notifications;
|
||||
'current-user': CurrentUser;
|
||||
'user-lookup': UserLookup;
|
||||
'hot-keys': HotKeys;
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ module('Unit | Service | hot-keys', function(hooks) {
|
||||
service.applyKeyMapping(Keyboard.ArrowUp);
|
||||
|
||||
service.registerKeyMapping(Keyboard.Enter, theChairsArePeople);
|
||||
service.clearKeyMapping(Keyboard.Enter);
|
||||
service.unregisterKeyMapping(Keyboard.Enter);
|
||||
service.applyKeyMapping(Keyboard.Enter);
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user