From e14e05d13d72c44fcfb011df83f3cfefe768e1fa Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Fri, 8 Sep 2023 02:26:32 +1000 Subject: Added framework for routing keyboard events --- wwwroot/js/keyboard.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 wwwroot/js/keyboard.js (limited to 'wwwroot/js/keyboard.js') diff --git a/wwwroot/js/keyboard.js b/wwwroot/js/keyboard.js new file mode 100644 index 0000000..9d06b75 --- /dev/null +++ b/wwwroot/js/keyboard.js @@ -0,0 +1,18 @@ +async function keyDownHandler(e) { + e.preventDefault(); + + var element = Array.from(document.querySelectorAll('div.dialog')) + .filter(e => e.style.visibility == 'visible') + .map(e => ({ element: e, zIndex: parseInt(e.style.zIndex) })) + .sort((a, b) => b.zIndex - a.zIndex) + .map(e => e.element)[0]; + + if(element) { + await window.dialogObjects + .find(d => d.element == element) + .dialogObject + .invokeMethodAsync('KeyHandler', e.key); + } +} + +window.onload = () => document.onkeydown = keyDownHandler; \ No newline at end of file -- cgit v1.3