@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.
@@ -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,yBAsB5B,CAAC"}
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;YAC1B,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;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,EAAE,QAAQ,UAAA,EAAE,YAAY,cAAA,EAAE,CAAC;AACpC,CAAC,CAAC;AAxBW,QAAA,mBAAmB,uBAwB9B"}
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
- filterByModelIds?: DeviceModelId[];
15
+ filterByDeviceModelIds?: DeviceModelId[];
16
+ filterOutDevicesByDeviceIds?: DeviceId[];
15
17
  };
16
18
  /**
17
19
  * Scans the BLE devices around the user
18
- * @param filterByModelIds An array of model ids to filter on
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, filterByModelIds, }: UseBleDevicesScanningDependencies & UseBleDevicesScanningOptions) => UseBleDevicesScanningResult;
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,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;CACpC,CAAC;AAIF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,+DAI/B,iCAAiC,GAClC,4BAA4B,KAAG,2BAoGhC,CAAC"}
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 filterByModelIds An array of model ids to filter on
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, filterByModelIds = _a.filterByModelIds;
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 (filterByModelIds &&
79
- !filterByModelIds.includes(bleInfo.deviceModel.id)) {
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
- filterByModelIds,
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":"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"}
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 filterModelIds is not null", function () {
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
- filterByModelIds: [devices_1.DeviceModelId.nanoX]
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
@@ -4,7 +4,7 @@
4
4
  },
5
5
  "name": "@ledgerhq/live-common",
6
6
  "description": "Common ground for the Ledger Live apps",
7
- "version": "27.1.0-next.4",
7
+ "version": "27.1.0-next.5",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/LedgerHQ/ledger-live.git"
@@ -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 filterModelIds is not null", () => {
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
- filterByModelIds: [DeviceModelId.nanoX],
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
- filterByModelIds?: DeviceModelId[];
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 filterByModelIds An array of model ids to filter on
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
- filterByModelIds,
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
- filterByModelIds &&
102
- !filterByModelIds.includes(bleInfo.deviceModel.id)
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
- filterByModelIds,
152
+ filterByDeviceModelIds,
140
153
  setScannedDevices,
154
+ filterOutDevicesByDeviceIds,
141
155
  ]);
142
156
 
143
157
  return {