@ledgerhq/live-common 27.1.0-next.4 → 27.1.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ble/hooks/useBleDevicePairing.d.ts.map +1 -1
- package/lib/ble/hooks/useBleDevicePairing.js +4 -1
- package/lib/ble/hooks/useBleDevicePairing.js.map +1 -1
- package/lib/ble/hooks/useBleDevicesScanning.d.ts +6 -3
- package/lib/ble/hooks/useBleDevicesScanning.d.ts.map +1 -1
- package/lib/ble/hooks/useBleDevicesScanning.js +11 -5
- package/lib/ble/hooks/useBleDevicesScanning.js.map +1 -1
- package/lib/ble/hooks/useBleDevicesScanning.test.js +42 -2
- package/lib/ble/hooks/useBleDevicesScanning.test.js.map +1 -1
- package/package.json +1 -1
- package/src/ble/hooks/useBleDevicePairing.ts +5 -1
- package/src/ble/hooks/useBleDevicesScanning.test.ts +33 -2
- package/src/ble/hooks/useBleDevicesScanning.ts +20 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBleDevicePairing.d.ts","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE3C,oBAAY,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,kBAE7B,uBAAuB,KAAG,
|
|
1
|
+
{"version":3,"file":"useBleDevicePairing.d.ts","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE3C,oBAAY,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,kBAE7B,uBAAuB,KAAG,yBA0B5B,CAAC"}
|
|
@@ -40,7 +40,7 @@ var useBleDevicePairing = function (_a) {
|
|
|
40
40
|
var requestObservable = (0, deviceAccess_1.withDevice)(deviceId)(function (t) {
|
|
41
41
|
return (0, rxjs_1.from)((0, getVersion_1["default"])(t));
|
|
42
42
|
}).pipe((0, operators_1.first)());
|
|
43
|
-
requestObservable.subscribe({
|
|
43
|
+
var sub = requestObservable.subscribe({
|
|
44
44
|
next: function (_value) {
|
|
45
45
|
setIsPaired(true);
|
|
46
46
|
setPairingError(null);
|
|
@@ -50,6 +50,9 @@ var useBleDevicePairing = function (_a) {
|
|
|
50
50
|
setPairingError(error);
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
|
+
return function () {
|
|
54
|
+
sub.unsubscribe();
|
|
55
|
+
};
|
|
53
56
|
}, [deviceId]);
|
|
54
57
|
return { isPaired: isPaired, pairingError: pairingError };
|
|
55
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBleDevicePairing.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA4C;AAC5C,6BAA4B;AAC5B,4CAAuC;AAEvC,sDAAmD;AACnD,mEAA6C;AAc7C;;;;;;GAMG;AACI,IAAM,mBAAmB,GAAG,UAAC,EAEV;QADxB,QAAQ,cAAA;IAEF,IAAA,KAAA,OAA0B,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAjD,QAAQ,QAAA,EAAE,WAAW,QAA4B,CAAC;IACnD,IAAA,KAAA,OAAkC,IAAA,gBAAQ,EAAe,IAAI,CAAC,IAAA,EAA7D,YAAY,QAAA,EAAE,eAAe,QAAgC,CAAC;IAErE,IAAA,iBAAS,EAAC;QACR,IAAM,iBAAiB,GAAG,IAAA,yBAAU,EAAC,QAAQ,CAAC,CAAC,UAAC,CAAC;YAC/C,OAAA,IAAA,WAAI,EAAC,IAAA,uBAAU,EAAC,CAAC,CAAC,CAAC;QAAnB,CAAmB,CACpB,CAAC,IAAI,CAAC,IAAA,iBAAK,GAAE,CAAC,CAAC;QAEhB,iBAAiB,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useBleDevicePairing.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicePairing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA4C;AAC5C,6BAA4B;AAC5B,4CAAuC;AAEvC,sDAAmD;AACnD,mEAA6C;AAc7C;;;;;;GAMG;AACI,IAAM,mBAAmB,GAAG,UAAC,EAEV;QADxB,QAAQ,cAAA;IAEF,IAAA,KAAA,OAA0B,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAjD,QAAQ,QAAA,EAAE,WAAW,QAA4B,CAAC;IACnD,IAAA,KAAA,OAAkC,IAAA,gBAAQ,EAAe,IAAI,CAAC,IAAA,EAA7D,YAAY,QAAA,EAAE,eAAe,QAAgC,CAAC;IAErE,IAAA,iBAAS,EAAC;QACR,IAAM,iBAAiB,GAAG,IAAA,yBAAU,EAAC,QAAQ,CAAC,CAAC,UAAC,CAAC;YAC/C,OAAA,IAAA,WAAI,EAAC,IAAA,uBAAU,EAAC,CAAC,CAAC,CAAC;QAAnB,CAAmB,CACpB,CAAC,IAAI,CAAC,IAAA,iBAAK,GAAE,CAAC,CAAC;QAEhB,IAAM,GAAG,GAAG,iBAAiB,CAAC,SAAS,CAAC;YACtC,IAAI,EAAE,UAAC,MAAoB;gBACzB,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YACD,KAAK,EAAE,UAAC,KAAe;gBACrB,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnB,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,EAAE,QAAQ,UAAA,EAAE,YAAY,cAAA,EAAE,CAAC;AACpC,CAAC,CAAC;AA5BW,QAAA,mBAAmB,uBA4B9B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DeviceModelId } from "@ledgerhq/types-devices";
|
|
2
2
|
import type { Observer as TransportObserver, Subscription as TransportSubscription, DescriptorEvent } from "@ledgerhq/hw-transport";
|
|
3
|
+
import { DeviceId } from "@ledgerhq/types-live";
|
|
3
4
|
import { TransportBleDevice, ScannedDevice, BleError } from "../types";
|
|
4
5
|
export declare type ScanningBleError = BleError | null;
|
|
5
6
|
export declare type UseBleDevicesScanningResult = {
|
|
@@ -11,15 +12,17 @@ export declare type UseBleDevicesScanningDependencies = {
|
|
|
11
12
|
};
|
|
12
13
|
export declare type UseBleDevicesScanningOptions = {
|
|
13
14
|
stopBleScanning?: boolean;
|
|
14
|
-
|
|
15
|
+
filterByDeviceModelIds?: DeviceModelId[];
|
|
16
|
+
filterOutDevicesByDeviceIds?: DeviceId[];
|
|
15
17
|
};
|
|
16
18
|
/**
|
|
17
19
|
* Scans the BLE devices around the user
|
|
18
|
-
* @param
|
|
20
|
+
* @param filterByDeviceModelIds An array of device model ids to filter on
|
|
21
|
+
* @param filterOutDevicesByDeviceIds An array of device ids to filter out
|
|
19
22
|
* @param stopBleScanning Flag to stop or continue the scanning
|
|
20
23
|
* @returns An object containing:
|
|
21
24
|
* - scannedDevices: list of ScannedDevice found by the scanning
|
|
22
25
|
* - scanningBleError: if an error occurred, a BleError, otherwise null
|
|
23
26
|
*/
|
|
24
|
-
export declare const useBleDevicesScanning: ({ bleTransportListen, stopBleScanning,
|
|
27
|
+
export declare const useBleDevicesScanning: ({ bleTransportListen, stopBleScanning, filterByDeviceModelIds, filterOutDevicesByDeviceIds, }: UseBleDevicesScanningDependencies & UseBleDevicesScanningOptions) => UseBleDevicesScanningResult;
|
|
25
28
|
//# sourceMappingURL=useBleDevicesScanning.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBleDevicesScanning.d.ts","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicesScanning.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EACV,QAAQ,IAAI,iBAAiB,EAC7B,YAAY,IAAI,qBAAqB,EACrC,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvE,oBAAY,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE/C,oBAAY,2BAA2B,GAAG;IACxC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,kBAAkB,EAAE,CAClB,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,KACpE,qBAAqB,CAAC;CAC5B,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"useBleDevicesScanning.d.ts","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicesScanning.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EACV,QAAQ,IAAI,iBAAiB,EAC7B,YAAY,IAAI,qBAAqB,EACrC,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvE,oBAAY,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE/C,oBAAY,2BAA2B,GAAG;IACxC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,oBAAY,iCAAiC,GAAG;IAC9C,kBAAkB,EAAE,CAClB,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,KACpE,qBAAqB,CAAC;CAC5B,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,aAAa,EAAE,CAAC;IACzC,2BAA2B,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1C,CAAC;AAIF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,kGAK/B,iCAAiC,GAClC,4BAA4B,KAAG,2BA8GhC,CAAC"}
|
|
@@ -33,14 +33,15 @@ var devices_1 = require("@ledgerhq/devices");
|
|
|
33
33
|
var DEFAULT_DEVICE_NAME = "Device";
|
|
34
34
|
/**
|
|
35
35
|
* Scans the BLE devices around the user
|
|
36
|
-
* @param
|
|
36
|
+
* @param filterByDeviceModelIds An array of device model ids to filter on
|
|
37
|
+
* @param filterOutDevicesByDeviceIds An array of device ids to filter out
|
|
37
38
|
* @param stopBleScanning Flag to stop or continue the scanning
|
|
38
39
|
* @returns An object containing:
|
|
39
40
|
* - scannedDevices: list of ScannedDevice found by the scanning
|
|
40
41
|
* - scanningBleError: if an error occurred, a BleError, otherwise null
|
|
41
42
|
*/
|
|
42
43
|
var useBleDevicesScanning = function (_a) {
|
|
43
|
-
var bleTransportListen = _a.bleTransportListen, stopBleScanning = _a.stopBleScanning,
|
|
44
|
+
var bleTransportListen = _a.bleTransportListen, stopBleScanning = _a.stopBleScanning, filterByDeviceModelIds = _a.filterByDeviceModelIds, filterOutDevicesByDeviceIds = _a.filterOutDevicesByDeviceIds;
|
|
44
45
|
var _b = __read((0, react_1.useState)(null), 2), scanningBleError = _b[0], setScanningBleError = _b[1];
|
|
45
46
|
var _c = __read((0, react_1.useState)([]), 2), scannedDevices = _c[0], setScannedDevices = _c[1];
|
|
46
47
|
// To check for duplicates. The ref will persist for the full lifetime of the component
|
|
@@ -68,6 +69,10 @@ var useBleDevicesScanning = function (_a) {
|
|
|
68
69
|
if (isScannedDeviceDuplicate) {
|
|
69
70
|
return;
|
|
70
71
|
}
|
|
72
|
+
var shouldScannedDeviceBeFilteredOut = filterOutDevicesByDeviceIds === null || filterOutDevicesByDeviceIds === void 0 ? void 0 : filterOutDevicesByDeviceIds.some(function (deviceId) { return deviceId === transportDevice_1.id; });
|
|
73
|
+
if (shouldScannedDeviceBeFilteredOut) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
71
76
|
if (transportDevice_1.serviceUUIDs &&
|
|
72
77
|
transportDevice_1.serviceUUIDs.length > 0) {
|
|
73
78
|
var bleInfo = (0, devices_1.getInfosForServiceUuid)(transportDevice_1.serviceUUIDs[0]);
|
|
@@ -75,8 +80,8 @@ var useBleDevicesScanning = function (_a) {
|
|
|
75
80
|
return;
|
|
76
81
|
}
|
|
77
82
|
// Filters on the model ids, if asked
|
|
78
|
-
if (
|
|
79
|
-
!
|
|
83
|
+
if (filterByDeviceModelIds &&
|
|
84
|
+
!filterByDeviceModelIds.includes(bleInfo.deviceModel.id)) {
|
|
80
85
|
return;
|
|
81
86
|
}
|
|
82
87
|
var newScannedDevice_1 = {
|
|
@@ -105,8 +110,9 @@ var useBleDevicesScanning = function (_a) {
|
|
|
105
110
|
}, [
|
|
106
111
|
bleTransportListen,
|
|
107
112
|
stopBleScanning,
|
|
108
|
-
|
|
113
|
+
filterByDeviceModelIds,
|
|
109
114
|
setScannedDevices,
|
|
115
|
+
filterOutDevicesByDeviceIds,
|
|
110
116
|
]);
|
|
111
117
|
return {
|
|
112
118
|
scannedDevices: scannedDevices,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBleDevicesScanning.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicesScanning.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAoD;AACpD,6BAAsC;AACtC,4CAA2C;AAC3C,6CAA2D;
|
|
1
|
+
{"version":3,"file":"useBleDevicesScanning.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicesScanning.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,7 +131,7 @@ describe("useBleDevicesScanning", function () {
|
|
|
131
131
|
});
|
|
132
132
|
}); });
|
|
133
133
|
});
|
|
134
|
-
describe("and when
|
|
134
|
+
describe("and when filterByDeviceModelIds is not null", function () {
|
|
135
135
|
it("should filter the scanning result by the given model ids", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
136
136
|
var result;
|
|
137
137
|
return __generator(this, function (_a) {
|
|
@@ -140,7 +140,7 @@ describe("useBleDevicesScanning", function () {
|
|
|
140
140
|
result = (0, react_hooks_1.renderHook)(function () {
|
|
141
141
|
return (0, useBleDevicesScanning_1.useBleDevicesScanning)({
|
|
142
142
|
bleTransportListen: setupMockBleTransportListen(mockEmitValuesByObserver),
|
|
143
|
-
|
|
143
|
+
filterByDeviceModelIds: [devices_1.DeviceModelId.nanoX]
|
|
144
144
|
});
|
|
145
145
|
}).result;
|
|
146
146
|
// The first scanned device was a nanoX
|
|
@@ -175,6 +175,46 @@ describe("useBleDevicesScanning", function () {
|
|
|
175
175
|
});
|
|
176
176
|
}); });
|
|
177
177
|
});
|
|
178
|
+
describe("and when filterOutDevicesByDeviceIds is not null nor empty", function () {
|
|
179
|
+
it("should not add the scanned device if its ids is in the array", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
180
|
+
var result;
|
|
181
|
+
return __generator(this, function (_a) {
|
|
182
|
+
switch (_a.label) {
|
|
183
|
+
case 0:
|
|
184
|
+
result = (0, react_hooks_1.renderHook)(function () {
|
|
185
|
+
return (0, useBleDevicesScanning_1.useBleDevicesScanning)({
|
|
186
|
+
bleTransportListen: setupMockBleTransportListen(mockEmitValuesByObserver),
|
|
187
|
+
filterOutDevicesByDeviceIds: [deviceIdA, deviceIdC]
|
|
188
|
+
});
|
|
189
|
+
}).result;
|
|
190
|
+
// The first scanned device (deviceIdA) should be filtered out
|
|
191
|
+
expect(result.current.scannedDevices).toHaveLength(0);
|
|
192
|
+
return [4 /*yield*/, (0, react_hooks_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
193
|
+
return __generator(this, function (_a) {
|
|
194
|
+
jest.advanceTimersByTime(1000);
|
|
195
|
+
return [2 /*return*/];
|
|
196
|
+
});
|
|
197
|
+
}); })];
|
|
198
|
+
case 1:
|
|
199
|
+
_a.sent();
|
|
200
|
+
// The second scanned device is deviceIdB and should be kept
|
|
201
|
+
expect(result.current.scannedDevices).toHaveLength(1);
|
|
202
|
+
expect(result.current.scannedDevices[0].deviceId).toBe(deviceIdB);
|
|
203
|
+
return [4 /*yield*/, (0, react_hooks_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
204
|
+
return __generator(this, function (_a) {
|
|
205
|
+
jest.advanceTimersByTime(1000);
|
|
206
|
+
return [2 /*return*/];
|
|
207
|
+
});
|
|
208
|
+
}); })];
|
|
209
|
+
case 2:
|
|
210
|
+
_a.sent();
|
|
211
|
+
// The third scanned device (deviceIdC) should be filtered out
|
|
212
|
+
expect(result.current.scannedDevices).toHaveLength(1);
|
|
213
|
+
return [2 /*return*/];
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}); });
|
|
217
|
+
});
|
|
178
218
|
describe("and when the hook consumer stops the scanning", function () {
|
|
179
219
|
it("should stop the scanning", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
180
220
|
var stopBleScanning, _a, result, rerender;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBleDevicesScanning.test.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicesScanning.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useBleDevicesScanning.test.js","sourceRoot":"","sources":["../../../src/ble/hooks/useBleDevicesScanning.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -35,7 +35,7 @@ export const useBleDevicePairing = ({
|
|
|
35
35
|
from(getVersion(t))
|
|
36
36
|
).pipe(first());
|
|
37
37
|
|
|
38
|
-
requestObservable.subscribe({
|
|
38
|
+
const sub = requestObservable.subscribe({
|
|
39
39
|
next: (_value: FirmwareInfo) => {
|
|
40
40
|
setIsPaired(true);
|
|
41
41
|
setPairingError(null);
|
|
@@ -45,6 +45,10 @@ export const useBleDevicePairing = ({
|
|
|
45
45
|
setPairingError(error);
|
|
46
46
|
},
|
|
47
47
|
});
|
|
48
|
+
|
|
49
|
+
return () => {
|
|
50
|
+
sub.unsubscribe();
|
|
51
|
+
};
|
|
48
52
|
}, [deviceId]);
|
|
49
53
|
|
|
50
54
|
return { isPaired, pairingError };
|
|
@@ -110,14 +110,14 @@ describe("useBleDevicesScanning", () => {
|
|
|
110
110
|
});
|
|
111
111
|
});
|
|
112
112
|
|
|
113
|
-
describe("and when
|
|
113
|
+
describe("and when filterByDeviceModelIds is not null", () => {
|
|
114
114
|
it("should filter the scanning result by the given model ids", async () => {
|
|
115
115
|
const { result } = renderHook(() =>
|
|
116
116
|
useBleDevicesScanning({
|
|
117
117
|
bleTransportListen: setupMockBleTransportListen(
|
|
118
118
|
mockEmitValuesByObserver
|
|
119
119
|
),
|
|
120
|
-
|
|
120
|
+
filterByDeviceModelIds: [DeviceModelId.nanoX],
|
|
121
121
|
})
|
|
122
122
|
);
|
|
123
123
|
|
|
@@ -149,6 +149,37 @@ describe("useBleDevicesScanning", () => {
|
|
|
149
149
|
});
|
|
150
150
|
});
|
|
151
151
|
|
|
152
|
+
describe("and when filterOutDevicesByDeviceIds is not null nor empty", () => {
|
|
153
|
+
it("should not add the scanned device if its ids is in the array", async () => {
|
|
154
|
+
const { result } = renderHook(() =>
|
|
155
|
+
useBleDevicesScanning({
|
|
156
|
+
bleTransportListen: setupMockBleTransportListen(
|
|
157
|
+
mockEmitValuesByObserver
|
|
158
|
+
),
|
|
159
|
+
filterOutDevicesByDeviceIds: [deviceIdA, deviceIdC],
|
|
160
|
+
})
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
// The first scanned device (deviceIdA) should be filtered out
|
|
164
|
+
expect(result.current.scannedDevices).toHaveLength(0);
|
|
165
|
+
|
|
166
|
+
await act(async () => {
|
|
167
|
+
jest.advanceTimersByTime(1000);
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
// The second scanned device is deviceIdB and should be kept
|
|
171
|
+
expect(result.current.scannedDevices).toHaveLength(1);
|
|
172
|
+
expect(result.current.scannedDevices[0].deviceId).toBe(deviceIdB);
|
|
173
|
+
|
|
174
|
+
await act(async () => {
|
|
175
|
+
jest.advanceTimersByTime(1000);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// The third scanned device (deviceIdC) should be filtered out
|
|
179
|
+
expect(result.current.scannedDevices).toHaveLength(1);
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
152
183
|
describe("and when the hook consumer stops the scanning", () => {
|
|
153
184
|
it("should stop the scanning", async () => {
|
|
154
185
|
let stopBleScanning = false;
|
|
@@ -9,6 +9,7 @@ import type {
|
|
|
9
9
|
DescriptorEvent,
|
|
10
10
|
DescriptorEventType,
|
|
11
11
|
} from "@ledgerhq/hw-transport";
|
|
12
|
+
import { DeviceId } from "@ledgerhq/types-live";
|
|
12
13
|
import { TransportBleDevice, ScannedDevice, BleError } from "../types";
|
|
13
14
|
|
|
14
15
|
export type ScanningBleError = BleError | null;
|
|
@@ -26,14 +27,16 @@ export type UseBleDevicesScanningDependencies = {
|
|
|
26
27
|
|
|
27
28
|
export type UseBleDevicesScanningOptions = {
|
|
28
29
|
stopBleScanning?: boolean;
|
|
29
|
-
|
|
30
|
+
filterByDeviceModelIds?: DeviceModelId[];
|
|
31
|
+
filterOutDevicesByDeviceIds?: DeviceId[];
|
|
30
32
|
};
|
|
31
33
|
|
|
32
34
|
const DEFAULT_DEVICE_NAME = "Device";
|
|
33
35
|
|
|
34
36
|
/**
|
|
35
37
|
* Scans the BLE devices around the user
|
|
36
|
-
* @param
|
|
38
|
+
* @param filterByDeviceModelIds An array of device model ids to filter on
|
|
39
|
+
* @param filterOutDevicesByDeviceIds An array of device ids to filter out
|
|
37
40
|
* @param stopBleScanning Flag to stop or continue the scanning
|
|
38
41
|
* @returns An object containing:
|
|
39
42
|
* - scannedDevices: list of ScannedDevice found by the scanning
|
|
@@ -42,7 +45,8 @@ const DEFAULT_DEVICE_NAME = "Device";
|
|
|
42
45
|
export const useBleDevicesScanning = ({
|
|
43
46
|
bleTransportListen,
|
|
44
47
|
stopBleScanning,
|
|
45
|
-
|
|
48
|
+
filterByDeviceModelIds,
|
|
49
|
+
filterOutDevicesByDeviceIds,
|
|
46
50
|
}: UseBleDevicesScanningDependencies &
|
|
47
51
|
UseBleDevicesScanningOptions): UseBleDevicesScanningResult => {
|
|
48
52
|
const [scanningBleError, setScanningBleError] =
|
|
@@ -84,6 +88,15 @@ export const useBleDevicesScanning = ({
|
|
|
84
88
|
return;
|
|
85
89
|
}
|
|
86
90
|
|
|
91
|
+
const shouldScannedDeviceBeFilteredOut =
|
|
92
|
+
filterOutDevicesByDeviceIds?.some(
|
|
93
|
+
(deviceId) => deviceId === transportDevice.id
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
if (shouldScannedDeviceBeFilteredOut) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
87
100
|
if (
|
|
88
101
|
transportDevice.serviceUUIDs &&
|
|
89
102
|
transportDevice.serviceUUIDs.length > 0
|
|
@@ -98,8 +111,8 @@ export const useBleDevicesScanning = ({
|
|
|
98
111
|
|
|
99
112
|
// Filters on the model ids, if asked
|
|
100
113
|
if (
|
|
101
|
-
|
|
102
|
-
!
|
|
114
|
+
filterByDeviceModelIds &&
|
|
115
|
+
!filterByDeviceModelIds.includes(bleInfo.deviceModel.id)
|
|
103
116
|
) {
|
|
104
117
|
return;
|
|
105
118
|
}
|
|
@@ -136,8 +149,9 @@ export const useBleDevicesScanning = ({
|
|
|
136
149
|
}, [
|
|
137
150
|
bleTransportListen,
|
|
138
151
|
stopBleScanning,
|
|
139
|
-
|
|
152
|
+
filterByDeviceModelIds,
|
|
140
153
|
setScannedDevices,
|
|
154
|
+
filterOutDevicesByDeviceIds,
|
|
141
155
|
]);
|
|
142
156
|
|
|
143
157
|
return {
|