Pass keyboard events from inner reviewer

This commit is contained in:
Luc Mcgrady 2025-11-15 22:21:19 +00:00
parent 7f29a0d211
commit f09cc303b6
No known key found for this signature in database
GPG key ID: 4F3D7A0B17CC3D9C
3 changed files with 16 additions and 11 deletions

View file

@ -78,14 +78,21 @@ addEventListener("message", async (e: MessageEvent<InnerReviewerRequest>) => {
}); });
addEventListener("keydown", (e) => { addEventListener("keydown", (e) => {
const keyInfo: ReviewerRequest = { type: "keypress", key: e.key, ctrl: e.ctrlKey, shift: e.shiftKey }; const keyInfo: ReviewerRequest = {
type: "keypress",
eventInit: {
key: e.key,
code: e.code,
altKey: e.altKey,
ctrlKey: e.ctrlKey,
shiftKey: e.shiftKey,
metaKey: e.metaKey,
repeat: e.repeat,
},
};
if ( if (
e.key.length == 1 && "1234 ".includes(e.key) !document.activeElement?.matches("input[type=text], input[type=number], textarea") && e.key !== "Enter"
) { ) {
if (!document.activeElement?.matches("input[type=text], input[type=number], textarea")) {
postParentMessage(keyInfo);
}
} else {
postParentMessage(keyInfo); postParentMessage(keyInfo);
} }
}); });

View file

@ -84,7 +84,7 @@ export class ReviewerState {
break; break;
} }
case "keypress": { case "keypress": {
this.handleKeyPress(e.data.key, e.data.ctrl, e.data.shift); dispatchEvent(new KeyboardEvent("keydown", e.data.eventInit));
break; break;
} }
case "setstorage": { case "setstorage": {
@ -272,7 +272,7 @@ export class ReviewerState {
} }
public registerShortcuts() { public registerShortcuts() {
document.addEventListener("keydown", this.onKeyDown.bind(this)); window.addEventListener("keydown", this.onKeyDown.bind(this));
} }
sendInnerRequest(message: InnerReviewerRequest) { sendInnerRequest(message: InnerReviewerRequest) {

View file

@ -13,9 +13,7 @@ interface UpdateTypedAnswerMessage {
interface KeyPressMessage { interface KeyPressMessage {
type: "keypress"; type: "keypress";
key: string; eventInit: KeyboardEventInit;
ctrl: boolean;
shift: boolean;
} }
interface SetStorageMessage { interface SetStorageMessage {