@oiij/use
Version:
Som Composable Functions for Vue 3
39 lines (37 loc) • 1.01 kB
JavaScript
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
const __vueuse_core = require_rolldown_runtime.__toESM(require("@vueuse/core"));
const vue = require_rolldown_runtime.__toESM(require("vue"));
//#region src/composables/use-scan-code.ts
function useScanCode() {
const value = (0, vue.ref)("");
const pending = (0, vue.ref)(true);
let tempStr = "";
let timer;
const onScanEvent = (0, __vueuse_core.createEventHook)();
function onKeyDown(ev) {
clearTimeout(timer);
timer = setTimeout(() => {
pending.value = true;
}, 100);
const key = ev.key;
if (pending.value) {
tempStr = "";
pending.value = false;
}
if (key === "Enter") {
pending.value = true;
value.value = tempStr;
onScanEvent.trigger(value.value);
tempStr = "";
}
if (key.length === 1) tempStr += key;
}
(0, __vueuse_core.useEventListener)(window, "keydown", onKeyDown);
return {
value,
pending,
onScan: onScanEvent.on
};
}
//#endregion
exports.useScanCode = useScanCode;