add keystrokes for chat navigation
This commit is contained in:
@@ -27,7 +27,12 @@ export function TaskSettingsModal(
|
||||
};
|
||||
|
||||
return (
|
||||
<div class="modal" open keystroke:s={taskViewModel.closeAndSave}>
|
||||
<div
|
||||
class="modal"
|
||||
open
|
||||
keystroke:s={taskViewModel.closeAndSave}
|
||||
keystroke:Escape={taskViewModel.closeAndDiscard}
|
||||
>
|
||||
<div>
|
||||
<main>
|
||||
<h2>
|
||||
|
||||
@@ -43,10 +43,38 @@ export default class ChatViewModel {
|
||||
// view
|
||||
open = (): void => {
|
||||
this.chatListViewModel.openChat(this);
|
||||
document.body.addEventListener("keydown", this.handleKeystroke);
|
||||
};
|
||||
|
||||
close = (): void => {
|
||||
this.chatListViewModel.closeChat();
|
||||
document.body.removeEventListener("keydown", this.handleKeystroke);
|
||||
};
|
||||
|
||||
handleKeystroke = (e: KeyboardEvent): any => {
|
||||
if (!e.metaKey && !e.ctrlKey) return;
|
||||
|
||||
switch (e.key) {
|
||||
case "e":
|
||||
this.close();
|
||||
break;
|
||||
case "1":
|
||||
this.selectedPage.value = ChatPageTypes.Messages;
|
||||
break;
|
||||
case "2":
|
||||
this.selectedPage.value = ChatPageTypes.Tasks;
|
||||
break;
|
||||
case "3":
|
||||
this.selectedPage.value = ChatPageTypes.Calendar;
|
||||
break;
|
||||
case ",":
|
||||
this.selectedPage.value = ChatPageTypes.Settings;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
};
|
||||
|
||||
closeSubPages = (): void => {};
|
||||
|
||||
@@ -89,7 +89,8 @@ export default class TaskViewModel {
|
||||
this.containingModel.closeTask();
|
||||
};
|
||||
|
||||
closeAndDiscard = (): void => {
|
||||
closeAndDiscard = (e: Event): void => {
|
||||
e.preventDefault();
|
||||
this.close();
|
||||
this.loadTaskData();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user