From 50ed3f56061efa4785c4960ef8a781e8db036ca5 Mon Sep 17 00:00:00 2001 From: trev Date: Wed, 19 Mar 2025 05:53:17 -0400 Subject: [PATCH] real init --- src/app.html | 2 +- src/lib/ScanCapture.svelte | 26 +-- src/routes/+layout.svelte | 4 +- src/routes/+page.svelte | 323 +++---------------------------------- 4 files changed, 39 insertions(+), 316 deletions(-) diff --git a/src/app.html b/src/app.html index b0da8dd..9a9a2f4 100644 --- a/src/app.html +++ b/src/app.html @@ -1,5 +1,5 @@ - + diff --git a/src/lib/ScanCapture.svelte b/src/lib/ScanCapture.svelte index fa0224b..96970c5 100644 --- a/src/lib/ScanCapture.svelte +++ b/src/lib/ScanCapture.svelte @@ -15,8 +15,11 @@ let inputElement: HTMLInputElement | null = null; let unfocusTimeout: NodeJS.Timeout; + let charArray: string[] = []; + let lastPressed: number; + async function onKeydown(event: KeyboardEvent) { - // If we this is a manual input + // If this is a manual input if (focused) { // Auto unfocus after 5 seconds of inactivity clearTimeout(unfocusTimeout); @@ -27,24 +30,29 @@ return; } - // Check if this is an indicator that scanning has been initiated - if (event.key == 'Unidentified') { + let scanning: boolean = false; + if (Date.now() - lastPressed < 150) { scanning = true; - return; + } else { + charArray = []; + } + + if (event.key.length == 1) { + charArray.push(event.key); } // Send the key to onscan - if ((event.key == 'Tab' || event.key == 'Enter' || event.key == 'Backspace' || event.key == "Home" || event.key == "Delete")) { + if ((event.key == 'Tab' || event.key == 'Enter')) { // Prevent tab or enter from doing anything event.preventDefault(); // Send key as text - onscan(event.key); - } else if (event.key.length == 1) { - onscan(event.key); + onscan(charArray.join('')); + charArray = []; + return; } - Haptics.impact({ style: ImpactStyle.Light }); + lastPressed = Date.now(); } async function onKeyup(event: KeyboardEvent) { diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index d1b1fbf..aca87f3 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -20,11 +20,11 @@ diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 2a859cc..4483bf3 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,316 +1,31 @@ - + - - { - e.preventDefault(); - }} - > - - Stats -
-

day count:

-

{daycount}

-

session count:

-

{sessioncount}

-
- +
+ {#key count} +

- - - - -
-
- - formValues.get('service'), (v) => formValues.set('service', v)} - /> + {count} +

+ {/key} +
-
- - formValues.get('serial'), (v) => formValues.set('serial', v)} - /> -
-
- - formValues.get('description'), (v) => formValues.set('description', v)} - /> -
-
- - formValues.get('manufacturer'), (v) => formValues.set('manufacturer', v)} - /> -
-
- - formValues.get('model'), (v) => formValues.set('model', v)} - /> -
-
- - formValues.get('condition'), (v) => formValues.set('condition', v)} - /> -
- {#if confirmation} -
- - -
- {:else} -
-
- - -
- -
- {/if} - +