add keystrokes for chat navigation
This commit is contained in:
Vendored
+38
-3
@@ -1693,7 +1693,8 @@
|
||||
this.close = () => {
|
||||
this.containingModel.closeTask();
|
||||
};
|
||||
this.closeAndDiscard = () => {
|
||||
this.closeAndDiscard = (e) => {
|
||||
e.preventDefault();
|
||||
this.close();
|
||||
this.loadTaskData();
|
||||
};
|
||||
@@ -2751,9 +2752,34 @@
|
||||
// view
|
||||
this.open = () => {
|
||||
this.chatListViewModel.openChat(this);
|
||||
document.body.addEventListener("keydown", this.handleKeystroke);
|
||||
};
|
||||
this.close = () => {
|
||||
this.chatListViewModel.closeChat();
|
||||
document.body.removeEventListener("keydown", this.handleKeystroke);
|
||||
};
|
||||
this.handleKeystroke = (e) => {
|
||||
if (!e.metaKey && !e.ctrlKey) return;
|
||||
switch (e.key) {
|
||||
case "e":
|
||||
this.close();
|
||||
break;
|
||||
case "1":
|
||||
this.selectedPage.value = "messages" /* Messages */;
|
||||
break;
|
||||
case "2":
|
||||
this.selectedPage.value = "tasks" /* Tasks */;
|
||||
break;
|
||||
case "3":
|
||||
this.selectedPage.value = "calendar" /* Calendar */;
|
||||
break;
|
||||
case ",":
|
||||
this.selectedPage.value = "settings" /* Settings */;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
e.preventDefault();
|
||||
};
|
||||
this.closeSubPages = () => {
|
||||
};
|
||||
@@ -3125,7 +3151,15 @@
|
||||
const isSelected = entry[0] == taskViewModel.task.boardId;
|
||||
return Option(entry[1], entry[0], isSelected);
|
||||
};
|
||||
return /* @__PURE__ */ createElement("div", { class: "modal", open: true, "keystroke:s": taskViewModel.closeAndSave }, /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("main", null, /* @__PURE__ */ createElement("h2", null, coreViewModel2.translations.chatPage.task.taskSettingsHeadline), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "history"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.general.fileVersionLabel), /* @__PURE__ */ createElement(
|
||||
return /* @__PURE__ */ createElement(
|
||||
"div",
|
||||
{
|
||||
class: "modal",
|
||||
open: true,
|
||||
"keystroke:s": taskViewModel.closeAndSave,
|
||||
"keystroke:Escape": taskViewModel.closeAndDiscard
|
||||
},
|
||||
/* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("main", null, /* @__PURE__ */ createElement("h2", null, coreViewModel2.translations.chatPage.task.taskSettingsHeadline), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "history"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.general.fileVersionLabel), /* @__PURE__ */ createElement(
|
||||
"select",
|
||||
{
|
||||
"bind:value": taskViewModel.selectedVersionId,
|
||||
@@ -3225,7 +3259,8 @@
|
||||
},
|
||||
coreViewModel2.translations.general.saveButton,
|
||||
/* @__PURE__ */ createElement("span", { class: "icon" }, "save")
|
||||
))));
|
||||
)))
|
||||
);
|
||||
}
|
||||
|
||||
// src/View/Components/taskEntry.tsx
|
||||
|
||||
@@ -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