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 @@ -day count:
-{daycount}
-session count:
-{sessioncount}
-