From c7c11f00403d46e40cddf28da862b390409df373 Mon Sep 17 00:00:00 2001 From: David Lechner Date: Fri, 17 Apr 2020 00:07:15 -0500 Subject: [PATCH] fix bluetooth stuck in connecting state after cancel --- src/actions/ble.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/actions/ble.ts b/src/actions/ble.ts index 9cf34653..21575b24 100644 --- a/src/actions/ble.ts +++ b/src/actions/ble.ts @@ -80,12 +80,20 @@ export function connect(): BLEThunkAction { return; } dispatch(beginConnect()); - device = await navigator.bluetooth.requestDevice({ - filters: [{ services: [pybricksServiceUUID] }], - optionalServices: [bleNusServiceUUID], - }); + try { + device = await navigator.bluetooth.requestDevice({ + filters: [{ services: [pybricksServiceUUID] }], + optionalServices: [bleNusServiceUUID], + }); + } catch (err) { + // this can happen if the use cancels the dialog + console.log(err); + dispatch(endDisconnect()); + return; + } if (device.gatt === undefined) { console.error('Device does not support GATT'); + dispatch(endDisconnect()); return; } device.addEventListener('gattserverdisconnected', () => {