From: Chris Duncan Date: Mon, 15 Sep 2025 14:23:23 +0000 (-0700) Subject: Add HID event listeners. X-Git-Tag: v0.10.5~14^2~22 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=adbf687ef60c41fe01243f52071d7da3967d39ed;p=libnemo.git Add HID event listeners. --- diff --git a/src/lib/wallet/ledger.ts b/src/lib/wallet/ledger.ts index 042bc1e..dbe4e35 100644 --- a/src/lib/wallet/ledger.ts +++ b/src/lib/wallet/ledger.ts @@ -348,10 +348,31 @@ export class Ledger { return new Promise(r => setTimeout(r, 1000, { status: Ledger.#STATUS_CODES[response] })) } + static #onConnectHid = async (e: HIDConnectionEvent): Promise => { + console.log(e) + if (e.device?.vendorId === ledgerUSBVendorId) { + console.log('Ledger connected via HID') + const { hid } = globalThis.navigator + hid.addEventListener('disconnect', this.#onDisconnectHid) + hid.removeEventListener('connect', this.#onConnectHid) + } + } + + static #onDisconnectHid = async (e: HIDConnectionEvent): Promise => { + console.log(e) + if (e.device?.vendorId === ledgerUSBVendorId) { + console.log('Ledger disconnected via HID') + const { hid } = globalThis.navigator + hid.addEventListener('connect', this.#onConnectHid) + hid.removeEventListener('disconnect', this.#onDisconnectHid) + this.#status = 'DISCONNECTED' + } + } + static #onConnectUsb = async (e: USBConnectionEvent): Promise => { console.log(e) if (e.device?.vendorId === ledgerUSBVendorId) { - console.log('Ledger connected') + console.log('Ledger connected via USB') const { usb } = globalThis.navigator usb.addEventListener('disconnect', this.#onDisconnectUsb) usb.removeEventListener('connect', this.#onConnectUsb) @@ -361,7 +382,7 @@ export class Ledger { static #onDisconnectUsb = async (e: USBConnectionEvent): Promise => { console.log(e) if (e.device?.vendorId === ledgerUSBVendorId) { - console.log('Ledger disconnected') + console.log('Ledger disconnected via USB') const { usb } = globalThis.navigator usb.addEventListener('connect', this.#onConnectUsb) usb.removeEventListener('disconnect', this.#onDisconnectUsb)