function BluetoothDetail()

in src/bluetooth/Bluetooth.tsx [239:294]


function BluetoothDetail({
  route: {
    params: {deviceId, deviceName},
  },
}: BluetoothDetailProps) {
  const [items, setData] = React.useState<ItemProps[] | null>(() => null);
  const [iotcentralClient] = useIoTCentralClient();

  React.useEffect(() => {
    const bleManager = IotcBleManager.getInstance();

    bleManager.startDeviceScan(null, {scanMode: 2}, (error, device) => {
      if (error) {
        console.error(error);
      }

      if (device?.id !== deviceId) {
        return;
      }

      const model = bleManager.getModelForDevice(device);

      const deviceData = model.onScan(device);
      if (!deviceData) {
        return;
      }

      const itemProps = model.getItemProps(deviceData);

      iotcentralClient?.sendTelemetry(deviceData);
      iotcentralClient?.sendProperty({bleDeviceName: device.name});

      setData(
        itemProps.map(item => ({
          ...item,
          sendInterval(_value) {},
          enable(_value) {},
        })),
      );
    });
  }, [deviceId, iotcentralClient]);

  if (!(deviceName && items)) {
    return (
      <View style={styles.listLoaderContainer}>
        <Loader visible message="Scanning for device" style={styles.loader} />
      </View>
    );
  }

  return (
    <>
      <CardView items={items} />
    </>
  );
}