From adbf687ef60c41fe01243f52071d7da3967d39ed Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Mon, 15 Sep 2025 07:23:23 -0700 Subject: [PATCH] Add HID event listeners. --- src/lib/wallet/ledger.ts | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) 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) -- 2.47.3