feat: keyboard shortcuts for primary actions (#2030)

This commit is contained in:
Mo
2022-11-18 09:01:48 -06:00
committed by GitHub
parent 0309912f98
commit f49ba6bd4d
67 changed files with 1296 additions and 555 deletions

View File

@@ -1,11 +1,18 @@
import { InternalEventBus } from '@standardnotes/snjs'
import { WebApplication } from '@/Application/Application'
import { action, makeObservable, observable } from 'mobx'
import { AbstractViewController } from './Abstract/AbstractViewController'
import { TOGGLE_FOCUS_MODE_COMMAND } from '@standardnotes/ui-services'
import { toggleFocusMode } from '@/Utils/toggleFocusMode'
export class QuickSettingsController {
export class QuickSettingsController extends AbstractViewController {
open = false
shouldAnimateCloseMenu = false
focusModeEnabled = false
constructor() {
constructor(application: WebApplication, eventBus: InternalEventBus) {
super(application, eventBus)
makeObservable(this, {
open: observable,
shouldAnimateCloseMenu: observable,
@@ -17,6 +24,17 @@ export class QuickSettingsController {
toggle: action,
closeQuickSettingsMenu: action,
})
this.disposers.push(
application.keyboardService.addCommandHandler({
command: TOGGLE_FOCUS_MODE_COMMAND,
onKeyDown: (event) => {
event.preventDefault()
this.setFocusModeEnabled(!this.focusModeEnabled)
return true
},
}),
)
}
setOpen = (open: boolean): void => {
@@ -29,6 +47,8 @@ export class QuickSettingsController {
setFocusModeEnabled = (enabled: boolean): void => {
this.focusModeEnabled = enabled
toggleFocusMode(enabled)
}
toggle = (): void => {