summaryrefslogtreecommitdiff
path: root/Pages
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-09-08 02:26:32 +1000
committerJake Mannens <jake@asger.xyz>2025-08-20 01:21:04 +1000
commit9d651759bc8757773d89356ad15dba5566e003e1 (patch)
treee96611b11a448f0669776ed8598751c08ea42387 /Pages
parent77b904b25aa10129e9d093ec3982642616ae7f31 (diff)
Added framework for routing keyboard events
Diffstat (limited to 'Pages')
-rw-r--r--Pages/Component/Dialog.razor19
-rw-r--r--Pages/Upload.razor2
-rw-r--r--Pages/_Host.cshtml1
3 files changed, 19 insertions, 3 deletions
diff --git a/Pages/Component/Dialog.razor b/Pages/Component/Dialog.razor
index dbfec49..673ec2f 100644
--- a/Pages/Component/Dialog.razor
+++ b/Pages/Component/Dialog.razor
@@ -48,6 +48,23 @@
public void Show() => Visible = true;
public void Hide() => Visible = false;
+ protected override async void OnAfterRender(bool firstRender) {
+ if(firstRender) {
+ await jsRuntime.InvokeVoidAsync("dialogAddObjectReference", new object[] {
+ dialogDiv,
+ DotNetObjectReference.Create(this)
+ });
+ }
+ }
+
+ [JSInvokable("KeyHandler")]
+ public void KeyHandler(string key) {
+ if(key == "Escape") {
+ Hide();
+ return;
+ }
+ }
+
private string heightStyle =>
- $"{(height is null ? "" : $"max-height:{height};")}";
+ $"{(height is null ? "" : $"max-height:{height};")}";
}
diff --git a/Pages/Upload.razor b/Pages/Upload.razor
index 36555da..7f7980b 100644
--- a/Pages/Upload.razor
+++ b/Pages/Upload.razor
@@ -29,7 +29,6 @@
dropzone.ondrop = function(e) {
e.preventDefault();
fileUpload.files = e.dataTransfer.files;
- console.log('lmao');
uploadForm.submit();
}
@@ -38,7 +37,6 @@
}
fileUpload.onchange = function(e) {
- console.log('epic');
uploadForm.submit();
}
</script>
diff --git a/Pages/_Host.cshtml b/Pages/_Host.cshtml
index 177e2df..69bced8 100644
--- a/Pages/_Host.cshtml
+++ b/Pages/_Host.cshtml
@@ -12,6 +12,7 @@
<link href="/styles/global.css" rel="stylesheet" />
<link href="/favicon.ico" rel="icon" />
<link href="/manifest.webmanifest" rel="manifest" />
+ <script type="text/javascript" src="/js/keyboard.js"></script>
<script type="text/javascript" src="/js/dialog.js"></script>
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>