diff --git a/app/(tabs)/sync.tsx b/app/(tabs)/sync.tsx index 69848c3..0cecebd 100644 --- a/app/(tabs)/sync.tsx +++ b/app/(tabs)/sync.tsx @@ -517,6 +517,8 @@ const DeviceItem = observer(({ device }: { device: any }) => { const [nameShow, setNameShow] = useState(bindDevice ? `${bindDevice?.name}` : name) const tempName = useRef(nameShow) + const connectFinal = isConnected && bindDevice + const canEdit = !!bindDevice && isConnected // 绑定过的设备 @@ -537,13 +539,19 @@ const DeviceItem = observer(({ device }: { device: any }) => { .then(() => { console.log('设备连接成功') if (userId) { - bleManager.bindDevice(userId).then((res) => { - // console.log('Bind device response------------:', res) - if (res.success !== 1) { + bleManager + .bindDevice(userId) + .then((res) => { + console.log('Bind device response------------:', res) + }) + .catch((e) => { + console.log('Bind device error------------:', e) Toast.show({ title: '设备已经被其他用户绑定过了' }) bleManager.disconnectDevice() - } - }) + }) + .finally(() => { + Toast.hideLoading() + }) } }) .catch(() => { @@ -581,7 +589,6 @@ const DeviceItem = observer(({ device }: { device: any }) => { try { await bleManager.unBindDevice(userId!) bleManager.disconnectDevice() - bleStore.removeBindDeviceItem(device.id) setNameShow(device.name || 'Unknown Device') Toast.show({ title: '解绑成功' }) } catch (error: any) { @@ -622,7 +629,7 @@ const DeviceItem = observer(({ device }: { device: any }) => { return ( - {isConnected && } + {connectFinal && } @@ -641,16 +648,16 @@ const DeviceItem = observer(({ device }: { device: any }) => { - {isConnected ? '已连接' : '未连接'} + {connectFinal ? '已连接' : '未连接'} {hasBind && ( 已绑定 @@ -662,10 +669,10 @@ const DeviceItem = observer(({ device }: { device: any }) => { onConnectToggle(device)} > - {isConnected ? '已连接' : '连接'} + {connectFinal ? '已连接' : '连接'} {canEdit && ( ('unbindDevice') await this.deviceInfoService.unbindDevice(state.connectedDevice.id, userId) - + bleStore.removeBindDeviceItem(state.connectedDevice.id) return await resultPromise } catch (e: any) { this.setError(`Request failed: ${e.message}`) diff --git a/stores/bleStore.ts b/stores/bleStore.ts index 40ae599..773b6c6 100644 --- a/stores/bleStore.ts +++ b/stores/bleStore.ts @@ -15,6 +15,8 @@ interface BleState { sn: string isActivated: boolean transferProgress: number + + canBind: boolean discoveredDevices: BleDevice[] loading: { connecting: boolean @@ -43,7 +45,6 @@ class BleStore { connectedDevice: null, deviceInfo: null, version: '', - sn: '', isActivated: false, transferProgress: 0,