react-native-debug-toolkit 3.2.1 → 3.2.2
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/README.md +13 -2
- package/README.zh-CN.md +13 -2
- package/android/build.gradle +34 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitDevConnectModule.java +70 -0
- package/android/src/main/java/com/reactnativedebugtoolkit/ReactNativeDebugToolkitPackage.java +25 -0
- package/ios/DebugToolkitDevConnect.mm +67 -0
- package/lib/commonjs/features/devConnect/DevConnectQrScanner.js +18 -7
- package/lib/commonjs/features/devConnect/DevConnectQrScanner.js.map +1 -1
- package/lib/commonjs/features/devConnect/DevConnectTab.js +232 -161
- package/lib/commonjs/features/devConnect/DevConnectTab.js.map +1 -1
- package/lib/commonjs/features/devConnect/devConnectPreferences.js +35 -5
- package/lib/commonjs/features/devConnect/devConnectPreferences.js.map +1 -1
- package/lib/commonjs/features/devConnect/devConnectUtils.js +99 -15
- package/lib/commonjs/features/devConnect/devConnectUtils.js.map +1 -1
- package/lib/commonjs/features/devConnect/index.js +39 -2
- package/lib/commonjs/features/devConnect/index.js.map +1 -1
- package/lib/commonjs/features/devConnect/nativeDevConnect.js +110 -0
- package/lib/commonjs/features/devConnect/nativeDevConnect.js.map +1 -0
- package/lib/commonjs/features/devConnect/platformDetect.js +7 -11
- package/lib/commonjs/features/devConnect/platformDetect.js.map +1 -1
- package/lib/commonjs/utils/debugPreferences.js +43 -6
- package/lib/commonjs/utils/debugPreferences.js.map +1 -1
- package/lib/module/features/devConnect/DevConnectQrScanner.js +18 -7
- package/lib/module/features/devConnect/DevConnectQrScanner.js.map +1 -1
- package/lib/module/features/devConnect/DevConnectTab.js +235 -164
- package/lib/module/features/devConnect/DevConnectTab.js.map +1 -1
- package/lib/module/features/devConnect/devConnectPreferences.js +33 -6
- package/lib/module/features/devConnect/devConnectPreferences.js.map +1 -1
- package/lib/module/features/devConnect/devConnectUtils.js +94 -15
- package/lib/module/features/devConnect/devConnectUtils.js.map +1 -1
- package/lib/module/features/devConnect/index.js +11 -3
- package/lib/module/features/devConnect/index.js.map +1 -1
- package/lib/module/features/devConnect/nativeDevConnect.js +104 -0
- package/lib/module/features/devConnect/nativeDevConnect.js.map +1 -0
- package/lib/module/features/devConnect/platformDetect.js +8 -12
- package/lib/module/features/devConnect/platformDetect.js.map +1 -1
- package/lib/module/utils/debugPreferences.js +43 -6
- package/lib/module/utils/debugPreferences.js.map +1 -1
- package/lib/typescript/src/features/devConnect/DevConnectQrScanner.d.ts +3 -2
- package/lib/typescript/src/features/devConnect/DevConnectQrScanner.d.ts.map +1 -1
- package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts.map +1 -1
- package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts +6 -0
- package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts.map +1 -1
- package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts +18 -1
- package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts.map +1 -1
- package/lib/typescript/src/features/devConnect/index.d.ts +2 -2
- package/lib/typescript/src/features/devConnect/index.d.ts.map +1 -1
- package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts +17 -0
- package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts.map +1 -0
- package/lib/typescript/src/features/devConnect/platformDetect.d.ts.map +1 -1
- package/lib/typescript/src/features/devConnect/types.d.ts +3 -0
- package/lib/typescript/src/features/devConnect/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/debugPreferences.d.ts +2 -0
- package/lib/typescript/src/utils/debugPreferences.d.ts.map +1 -1
- package/package.json +4 -1
- package/react-native-debug-toolkit.podspec +18 -0
- package/src/features/devConnect/DevConnectQrScanner.tsx +20 -9
- package/src/features/devConnect/DevConnectTab.tsx +227 -105
- package/src/features/devConnect/devConnectPreferences.ts +50 -5
- package/src/features/devConnect/devConnectUtils.ts +122 -15
- package/src/features/devConnect/index.ts +13 -0
- package/src/features/devConnect/nativeDevConnect.ts +128 -0
- package/src/features/devConnect/platformDetect.ts +8 -13
- package/src/features/devConnect/types.ts +3 -0
- package/src/utils/debugPreferences.ts +49 -4
package/README.md
CHANGED
|
@@ -26,6 +26,15 @@ RN App -> Debug Panel -> local daemon -> Web Console / HTTP API / MCP
|
|
|
26
26
|
npm install react-native-debug-toolkit
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
Install the native part and rebuild the app:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
cd ios && pod install
|
|
33
|
+
# Android: Gradle autolinking runs on the next build
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Expo Go cannot load this native module. Use a development build, prebuild, or bare React Native app.
|
|
37
|
+
|
|
29
38
|
Optional dependencies:
|
|
30
39
|
|
|
31
40
|
```bash
|
|
@@ -64,9 +73,11 @@ Open the Web Console:
|
|
|
64
73
|
http://127.0.0.1:3799/console
|
|
65
74
|
```
|
|
66
75
|
|
|
67
|
-
In the app, open Debug Panel -> `DevConnect` -> `Send Once` or `Start Live Sync
|
|
76
|
+
In the app, open Debug Panel -> `DevConnect` -> `Send Once` or `Start Live Sync` for desktop logs.
|
|
77
|
+
|
|
78
|
+
DevConnect auto-detects simulator/emulator and uses local host settings automatically. On real devices, enter your computer IP to connect.
|
|
68
79
|
|
|
69
|
-
|
|
80
|
+
For Remote JS Bundle, run Metro on your computer, enter computer IP and Metro port in `DevConnect`, then tap `Use Metro Bundle`. DevConnect writes React Native's native dev-server host setting and reloads the app. The IP and ports are persisted through AsyncStorage when installed, or through the native module after rebuild.
|
|
70
81
|
|
|
71
82
|
QR scan is optional. Install `react-native-camera-kit` or `expo-camera` in the app to enable the scan button. The app must request camera permission before scanning.
|
|
72
83
|
|
package/README.zh-CN.md
CHANGED
|
@@ -26,6 +26,15 @@ RN App -> Debug Panel -> local daemon -> Web Console / HTTP API / MCP
|
|
|
26
26
|
npm install react-native-debug-toolkit
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
安装原生部分并重新构建 App:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
cd ios && pod install
|
|
33
|
+
# Android:下次构建时 Gradle autolinking 生效
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Expo Go 不能加载这个原生模块。Expo 项目需用 development build、prebuild,或 bare React Native。
|
|
37
|
+
|
|
29
38
|
可选依赖:
|
|
30
39
|
|
|
31
40
|
```bash
|
|
@@ -64,9 +73,11 @@ npm exec debug-toolkit --daemon-only
|
|
|
64
73
|
http://127.0.0.1:3799/console
|
|
65
74
|
```
|
|
66
75
|
|
|
67
|
-
App 内打开 Debug Panel -> `DevConnect` -> `Send Once` 或 `Start Live Sync
|
|
76
|
+
App 内打开 Debug Panel -> `DevConnect` -> `Send Once` 或 `Start Live Sync` 同步桌面日志。
|
|
77
|
+
|
|
78
|
+
DevConnect 自动识别模拟器/真机,模拟器下自动使用本机 Metro/daemon 地址。真机需输入电脑 IP 地址。
|
|
68
79
|
|
|
69
|
-
DevConnect
|
|
80
|
+
Remote JS Bundle:先在电脑启动 Metro,在 `DevConnect` 输入电脑 IP 和 Metro 端口,然后点 `Use Metro Bundle`。DevConnect 会写入 React Native 原生 dev-server host 设置并 reload App。IP 和端口会通过 AsyncStorage 持久化;如果没装 AsyncStorage,则在重建后通过本库原生模块持久化。
|
|
70
81
|
|
|
71
82
|
扫码是可选能力。App 安装 `react-native-camera-kit` 或 `expo-camera` 后,DevConnect 才显示扫码按钮。App 仍需自己配置相机权限文案,并在使用扫码前申请相机权限。
|
|
72
83
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
buildscript {
|
|
2
|
+
repositories {
|
|
3
|
+
google()
|
|
4
|
+
mavenCentral()
|
|
5
|
+
}
|
|
6
|
+
dependencies {
|
|
7
|
+
classpath("com.android.tools.build:gradle:7.4.2")
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
def safeExtGet(prop, fallback) {
|
|
12
|
+
return rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
apply plugin: 'com.android.library'
|
|
16
|
+
|
|
17
|
+
android {
|
|
18
|
+
namespace 'com.reactnativedebugtoolkit'
|
|
19
|
+
compileSdkVersion safeExtGet('compileSdkVersion', 35)
|
|
20
|
+
|
|
21
|
+
defaultConfig {
|
|
22
|
+
minSdkVersion safeExtGet('minSdkVersion', 23)
|
|
23
|
+
targetSdkVersion safeExtGet('targetSdkVersion', 35)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
repositories {
|
|
28
|
+
google()
|
|
29
|
+
mavenCentral()
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
dependencies {
|
|
33
|
+
implementation 'com.facebook.react:react-android'
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" />
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
package com.reactnativedebugtoolkit;
|
|
2
|
+
|
|
3
|
+
import android.content.SharedPreferences;
|
|
4
|
+
import android.preference.PreferenceManager;
|
|
5
|
+
|
|
6
|
+
import androidx.annotation.NonNull;
|
|
7
|
+
import androidx.annotation.Nullable;
|
|
8
|
+
|
|
9
|
+
import com.facebook.react.bridge.Arguments;
|
|
10
|
+
import com.facebook.react.bridge.Promise;
|
|
11
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
12
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
13
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
14
|
+
import com.facebook.react.bridge.WritableMap;
|
|
15
|
+
|
|
16
|
+
public class DebugToolkitDevConnectModule extends ReactContextBaseJavaModule {
|
|
17
|
+
private static final String MODULE_NAME = "DebugToolkitDevConnect";
|
|
18
|
+
private static final String DEBUG_SERVER_HOST_KEY = "debug_http_host";
|
|
19
|
+
|
|
20
|
+
public DebugToolkitDevConnectModule(ReactApplicationContext reactContext) {
|
|
21
|
+
super(reactContext);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@NonNull
|
|
25
|
+
@Override
|
|
26
|
+
public String getName() {
|
|
27
|
+
return MODULE_NAME;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private SharedPreferences getPreferences() {
|
|
31
|
+
return PreferenceManager.getDefaultSharedPreferences(getReactApplicationContext());
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@ReactMethod
|
|
35
|
+
public void getMetroHost(Promise promise) {
|
|
36
|
+
@Nullable String host = getPreferences().getString(DEBUG_SERVER_HOST_KEY, null);
|
|
37
|
+
promise.resolve(host);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactMethod
|
|
41
|
+
public void applyMetroHost(String hostPort, Promise promise) {
|
|
42
|
+
if (hostPort == null || hostPort.length() == 0) {
|
|
43
|
+
promise.reject("invalid_host", "Metro host cannot be empty.");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
getPreferences().edit().putString(DEBUG_SERVER_HOST_KEY, hostPort).apply();
|
|
48
|
+
WritableMap result = Arguments.createMap();
|
|
49
|
+
result.putString("hostPort", hostPort);
|
|
50
|
+
promise.resolve(result);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@ReactMethod
|
|
54
|
+
public void resetMetroHost(Promise promise) {
|
|
55
|
+
getPreferences().edit().remove(DEBUG_SERVER_HOST_KEY).apply();
|
|
56
|
+
promise.resolve(null);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@ReactMethod
|
|
60
|
+
public void getPreference(String key, Promise promise) {
|
|
61
|
+
@Nullable String value = getPreferences().getString(key, null);
|
|
62
|
+
promise.resolve(value);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@ReactMethod
|
|
66
|
+
public void setPreference(String key, String value, Promise promise) {
|
|
67
|
+
getPreferences().edit().putString(key, value).apply();
|
|
68
|
+
promise.resolve(null);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
package com.reactnativedebugtoolkit;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.ReactPackage;
|
|
6
|
+
import com.facebook.react.bridge.NativeModule;
|
|
7
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
8
|
+
import com.facebook.react.uimanager.ViewManager;
|
|
9
|
+
|
|
10
|
+
import java.util.Collections;
|
|
11
|
+
import java.util.List;
|
|
12
|
+
|
|
13
|
+
public class ReactNativeDebugToolkitPackage implements ReactPackage {
|
|
14
|
+
@NonNull
|
|
15
|
+
@Override
|
|
16
|
+
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
|
|
17
|
+
return Collections.<NativeModule>singletonList(new DebugToolkitDevConnectModule(reactContext));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@NonNull
|
|
21
|
+
@Override
|
|
22
|
+
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
|
|
23
|
+
return Collections.emptyList();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
#import <React/RCTBridgeModule.h>
|
|
3
|
+
#import <React/RCTBundleURLProvider.h>
|
|
4
|
+
|
|
5
|
+
static NSString *const DebugToolkitRCTJsLocationKey = @"RCT_jsLocation";
|
|
6
|
+
|
|
7
|
+
@interface DebugToolkitDevConnect : NSObject <RCTBridgeModule>
|
|
8
|
+
@end
|
|
9
|
+
|
|
10
|
+
@implementation DebugToolkitDevConnect
|
|
11
|
+
|
|
12
|
+
RCT_EXPORT_MODULE(DebugToolkitDevConnect)
|
|
13
|
+
|
|
14
|
+
+ (BOOL)requiresMainQueueSetup
|
|
15
|
+
{
|
|
16
|
+
return NO;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
RCT_EXPORT_METHOD(getMetroHost:(RCTPromiseResolveBlock)resolve
|
|
20
|
+
rejecter:(__unused RCTPromiseRejectBlock)reject)
|
|
21
|
+
{
|
|
22
|
+
NSString *host = [RCTBundleURLProvider sharedSettings].jsLocation;
|
|
23
|
+
resolve(host ?: [NSNull null]);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
RCT_EXPORT_METHOD(applyMetroHost:(NSString *)hostPort
|
|
27
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
28
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
29
|
+
{
|
|
30
|
+
if (hostPort.length == 0) {
|
|
31
|
+
reject(@"invalid_host", @"Metro host cannot be empty.", nil);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
[RCTBundleURLProvider sharedSettings].jsLocation = hostPort;
|
|
36
|
+
resolve(@{ @"hostPort" : hostPort });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
RCT_EXPORT_METHOD(resetMetroHost:(RCTPromiseResolveBlock)resolve
|
|
40
|
+
rejecter:(__unused RCTPromiseRejectBlock)reject)
|
|
41
|
+
{
|
|
42
|
+
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
|
43
|
+
[defaults removeObjectForKey:DebugToolkitRCTJsLocationKey];
|
|
44
|
+
[defaults synchronize];
|
|
45
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:RCTBundleURLProviderUpdatedNotification object:nil];
|
|
46
|
+
resolve([NSNull null]);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
RCT_EXPORT_METHOD(getPreference:(NSString *)key
|
|
50
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
51
|
+
rejecter:(__unused RCTPromiseRejectBlock)reject)
|
|
52
|
+
{
|
|
53
|
+
NSString *value = [[NSUserDefaults standardUserDefaults] stringForKey:key];
|
|
54
|
+
resolve(value ?: [NSNull null]);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
RCT_EXPORT_METHOD(setPreference:(NSString *)key
|
|
58
|
+
value:(NSString *)value
|
|
59
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
60
|
+
rejecter:(__unused RCTPromiseRejectBlock)reject)
|
|
61
|
+
{
|
|
62
|
+
[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
|
|
63
|
+
[[NSUserDefaults standardUserDefaults] synchronize];
|
|
64
|
+
resolve([NSNull null]);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@end
|
|
@@ -27,7 +27,9 @@ class CameraErrorBoundary extends _react.Component {
|
|
|
27
27
|
this.props.onCameraError(error.message || 'Camera failed to initialize.');
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
if (this.state.hasError)
|
|
30
|
+
if (this.state.hasError) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
31
33
|
return this.props.children;
|
|
32
34
|
}
|
|
33
35
|
}
|
|
@@ -37,7 +39,7 @@ class CameraErrorBoundary extends _react.Component {
|
|
|
37
39
|
function DevConnectQrScanner({
|
|
38
40
|
visible,
|
|
39
41
|
onClose,
|
|
40
|
-
|
|
42
|
+
onScanTarget
|
|
41
43
|
}) {
|
|
42
44
|
const scannedRef = (0, _react.useRef)(false);
|
|
43
45
|
const [error, setError] = (0, _react.useState)(null);
|
|
@@ -51,8 +53,12 @@ function DevConnectQrScanner({
|
|
|
51
53
|
}
|
|
52
54
|
}, [visible]);
|
|
53
55
|
const handleScanned = (0, _react.useCallback)(rawValue => {
|
|
54
|
-
if (scannedRef.current)
|
|
55
|
-
|
|
56
|
+
if (scannedRef.current) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (typeof rawValue !== 'string') {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
56
62
|
const parsed = (0, _devConnectUtils.parseMetroQrPayload)(rawValue);
|
|
57
63
|
if (!parsed) {
|
|
58
64
|
setError('QR code does not contain a supported Metro URL.');
|
|
@@ -60,9 +66,12 @@ function DevConnectQrScanner({
|
|
|
60
66
|
}
|
|
61
67
|
scannedRef.current = true;
|
|
62
68
|
setError(null);
|
|
63
|
-
|
|
69
|
+
onScanTarget({
|
|
70
|
+
computerHost: parsed.computerHost,
|
|
71
|
+
metroPort: parsed.metroPort
|
|
72
|
+
});
|
|
64
73
|
onClose();
|
|
65
|
-
}, [onClose,
|
|
74
|
+
}, [onClose, onScanTarget]);
|
|
66
75
|
const handleCameraKitRead = (0, _react.useCallback)(event => {
|
|
67
76
|
handleScanned(event.nativeEvent?.codeStringValue ?? '');
|
|
68
77
|
}, [handleScanned]);
|
|
@@ -72,7 +81,9 @@ function DevConnectQrScanner({
|
|
|
72
81
|
const handleCameraError = (0, _react.useCallback)(_msg => {
|
|
73
82
|
setCameraFailed(true);
|
|
74
83
|
}, []);
|
|
75
|
-
if (!visible || !scanner)
|
|
84
|
+
if (!visible || !scanner) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
76
87
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
|
|
77
88
|
visible: visible,
|
|
78
89
|
animationType: "slide",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_colors","_cameraKit","_devConnectUtils","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CameraErrorBoundary","Component","state","hasError","getDerivedStateFromError","componentDidCatch","error","console","warn","message","props","onCameraError","render","children","DevConnectQrScanner","visible","onClose","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_colors","_cameraKit","_devConnectUtils","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CameraErrorBoundary","Component","state","hasError","getDerivedStateFromError","componentDidCatch","error","console","warn","message","props","onCameraError","render","children","DevConnectQrScanner","visible","onClose","onScanTarget","scannedRef","useRef","setError","useState","cameraFailed","setCameraFailed","scanner","getScannerModule","useEffect","current","handleScanned","useCallback","rawValue","parsed","parseMetroQrPayload","computerHost","metroPort","handleCameraKitRead","event","nativeEvent","codeStringValue","handleExpoScanned","result","value","handleCameraError","_msg","jsx","Modal","animationType","onRequestClose","jsxs","View","style","styles","container","kind","CameraKit","Camera","camera","cameraType","CameraType","Back","scanBarcode","onReadCode","showFrame","laserColor","Colors","primary","frameColor","allowedBarcodeTypes","ExpoCamera","onBarCodeScanned","barCodeScannerSettings","barCodeTypes","cameraFallback","Text","cameraFallbackText","cameraFallbackHint","footer","hint","TouchableOpacity","closeButton","onPress","activeOpacity","closeButtonText","Pressable","topClose","topCloseText","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","padding","fontSize","color","fontWeight","marginBottom","textAlign","surface","textSecondary","paddingVertical","borderRadius","position","top","right","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["features/devConnect/DevConnectQrScanner.tsx"],"mappings":"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","ignoreList":[]}
|