react-native-debug-toolkit 3.2.3 → 3.2.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.
Files changed (74) hide show
  1. package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitDevConnectModule.java +80 -10
  2. package/ios/DebugToolkitDevConnect.mm +84 -19
  3. package/lib/commonjs/core/initialize.js +15 -3
  4. package/lib/commonjs/core/initialize.js.map +1 -1
  5. package/lib/commonjs/features/devConnect/DevConnectTab.js +121 -58
  6. package/lib/commonjs/features/devConnect/DevConnectTab.js.map +1 -1
  7. package/lib/commonjs/features/devConnect/devConnectPreferences.js +6 -2
  8. package/lib/commonjs/features/devConnect/devConnectPreferences.js.map +1 -1
  9. package/lib/commonjs/features/devConnect/devConnectUtils.js +8 -0
  10. package/lib/commonjs/features/devConnect/devConnectUtils.js.map +1 -1
  11. package/lib/commonjs/features/devConnect/index.js +33 -5
  12. package/lib/commonjs/features/devConnect/index.js.map +1 -1
  13. package/lib/commonjs/features/devConnect/nativeDevConnect.js +26 -0
  14. package/lib/commonjs/features/devConnect/nativeDevConnect.js.map +1 -1
  15. package/lib/commonjs/ui/DebugView.js +10 -2
  16. package/lib/commonjs/ui/DebugView.js.map +1 -1
  17. package/lib/commonjs/utils/DaemonClient.js +5 -0
  18. package/lib/commonjs/utils/DaemonClient.js.map +1 -1
  19. package/lib/module/core/initialize.js +16 -4
  20. package/lib/module/core/initialize.js.map +1 -1
  21. package/lib/module/features/devConnect/DevConnectTab.js +122 -59
  22. package/lib/module/features/devConnect/DevConnectTab.js.map +1 -1
  23. package/lib/module/features/devConnect/devConnectPreferences.js +6 -2
  24. package/lib/module/features/devConnect/devConnectPreferences.js.map +1 -1
  25. package/lib/module/features/devConnect/devConnectUtils.js +7 -0
  26. package/lib/module/features/devConnect/devConnectUtils.js.map +1 -1
  27. package/lib/module/features/devConnect/index.js +30 -7
  28. package/lib/module/features/devConnect/index.js.map +1 -1
  29. package/lib/module/features/devConnect/nativeDevConnect.js +24 -0
  30. package/lib/module/features/devConnect/nativeDevConnect.js.map +1 -1
  31. package/lib/module/ui/DebugView.js +11 -3
  32. package/lib/module/ui/DebugView.js.map +1 -1
  33. package/lib/module/utils/DaemonClient.js +5 -0
  34. package/lib/module/utils/DaemonClient.js.map +1 -1
  35. package/lib/typescript/src/core/initialize.d.ts +4 -2
  36. package/lib/typescript/src/core/initialize.d.ts.map +1 -1
  37. package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts +1 -1
  38. package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts.map +1 -1
  39. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts.map +1 -1
  40. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts +1 -0
  41. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts.map +1 -1
  42. package/lib/typescript/src/features/devConnect/index.d.ts +1 -0
  43. package/lib/typescript/src/features/devConnect/index.d.ts.map +1 -1
  44. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts +2 -0
  45. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts.map +1 -1
  46. package/lib/typescript/src/features/devConnect/types.d.ts +5 -1
  47. package/lib/typescript/src/features/devConnect/types.d.ts.map +1 -1
  48. package/lib/typescript/src/ui/DebugView.d.ts.map +1 -1
  49. package/lib/typescript/src/utils/DaemonClient.d.ts +2 -0
  50. package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -1
  51. package/package.json +2 -10
  52. package/src/core/initialize.ts +17 -5
  53. package/src/features/devConnect/DevConnectTab.tsx +120 -45
  54. package/src/features/devConnect/devConnectPreferences.ts +7 -2
  55. package/src/features/devConnect/devConnectUtils.ts +8 -0
  56. package/src/features/devConnect/index.ts +31 -7
  57. package/src/features/devConnect/nativeDevConnect.ts +28 -0
  58. package/src/features/devConnect/types.ts +9 -1
  59. package/src/ui/DebugView.tsx +12 -3
  60. package/src/utils/DaemonClient.ts +7 -0
  61. package/lib/commonjs/features/devConnect/DevConnectQrScanner.js +0 -248
  62. package/lib/commonjs/features/devConnect/DevConnectQrScanner.js.map +0 -1
  63. package/lib/commonjs/features/devConnect/cameraKit.js +0 -54
  64. package/lib/commonjs/features/devConnect/cameraKit.js.map +0 -1
  65. package/lib/module/features/devConnect/DevConnectQrScanner.js +0 -243
  66. package/lib/module/features/devConnect/DevConnectQrScanner.js.map +0 -1
  67. package/lib/module/features/devConnect/cameraKit.js +0 -49
  68. package/lib/module/features/devConnect/cameraKit.js.map +0 -1
  69. package/lib/typescript/src/features/devConnect/DevConnectQrScanner.d.ts +0 -10
  70. package/lib/typescript/src/features/devConnect/DevConnectQrScanner.d.ts.map +0 -1
  71. package/lib/typescript/src/features/devConnect/cameraKit.d.ts +0 -47
  72. package/lib/typescript/src/features/devConnect/cameraKit.d.ts.map +0 -1
  73. package/src/features/devConnect/DevConnectQrScanner.tsx +0 -214
  74. package/src/features/devConnect/cameraKit.ts +0 -93
@@ -1,248 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DevConnectQrScanner = DevConnectQrScanner;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
- var _colors = require("../../ui/theme/colors");
10
- var _cameraKit = require("./cameraKit");
11
- var _devConnectUtils = require("./devConnectUtils");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
- // ─── Camera Error Boundary ─────────────────────────────────
15
-
16
- class CameraErrorBoundary extends _react.Component {
17
- state = {
18
- hasError: false
19
- };
20
- static getDerivedStateFromError() {
21
- return {
22
- hasError: true
23
- };
24
- }
25
- componentDidCatch(error) {
26
- console.warn('[DevConnect] Camera error:', error.message);
27
- this.props.onCameraError(error.message || 'Camera failed to initialize.');
28
- }
29
- render() {
30
- if (this.state.hasError) {
31
- return null;
32
- }
33
- return this.props.children;
34
- }
35
- }
36
-
37
- // ─── QR Scanner ─────────────────────────────────────────────
38
-
39
- function DevConnectQrScanner({
40
- visible,
41
- onClose,
42
- onScanTarget
43
- }) {
44
- const scannedRef = (0, _react.useRef)(false);
45
- const [error, setError] = (0, _react.useState)(null);
46
- const [cameraFailed, setCameraFailed] = (0, _react.useState)(false);
47
- const scanner = (0, _cameraKit.getScannerModule)();
48
- (0, _react.useEffect)(() => {
49
- if (visible) {
50
- scannedRef.current = false;
51
- setError(null);
52
- setCameraFailed(false);
53
- }
54
- }, [visible]);
55
- const handleScanned = (0, _react.useCallback)(rawValue => {
56
- if (scannedRef.current) {
57
- return;
58
- }
59
- if (typeof rawValue !== 'string') {
60
- return;
61
- }
62
- const parsed = (0, _devConnectUtils.parseMetroQrPayload)(rawValue);
63
- if (!parsed) {
64
- setError('QR code does not contain a supported Metro URL.');
65
- return;
66
- }
67
- scannedRef.current = true;
68
- setError(null);
69
- onScanTarget({
70
- computerHost: parsed.computerHost,
71
- metroPort: parsed.metroPort
72
- });
73
- onClose();
74
- }, [onClose, onScanTarget]);
75
- const handleCameraKitRead = (0, _react.useCallback)(event => {
76
- handleScanned(event.nativeEvent?.codeStringValue ?? '');
77
- }, [handleScanned]);
78
- const handleExpoScanned = (0, _react.useCallback)(result => {
79
- handleScanned(result.value ?? '');
80
- }, [handleScanned]);
81
- const handleCameraError = (0, _react.useCallback)(_msg => {
82
- setCameraFailed(true);
83
- }, []);
84
- if (!visible || !scanner) {
85
- return null;
86
- }
87
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
88
- visible: visible,
89
- animationType: "slide",
90
- presentationStyle: "fullScreen",
91
- onRequestClose: onClose,
92
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
93
- style: styles.container,
94
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
95
- style: styles.previewLayer,
96
- children: [!cameraFailed && /*#__PURE__*/(0, _jsxRuntime.jsx)(CameraErrorBoundary, {
97
- onCameraError: handleCameraError,
98
- children: scanner.kind === 'camera-kit' && scanner.CameraKit ? /*#__PURE__*/(0, _jsxRuntime.jsx)(scanner.CameraKit.Camera, {
99
- style: styles.camera,
100
- cameraType: scanner.CameraKit.CameraType?.Back,
101
- scanBarcode: true,
102
- onReadCode: handleCameraKitRead,
103
- showFrame: true,
104
- laserColor: _colors.Colors.primary,
105
- frameColor: _colors.Colors.primary,
106
- allowedBarcodeTypes: ['qr']
107
- }) : scanner.kind === 'expo-camera' && scanner.ExpoCamera ? /*#__PURE__*/(0, _jsxRuntime.jsx)(scanner.ExpoCamera.Camera, {
108
- style: styles.camera,
109
- onBarCodeScanned: handleExpoScanned,
110
- barCodeScannerSettings: {
111
- barCodeTypes: ['qr']
112
- }
113
- }) : null
114
- }), cameraFailed && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
115
- style: styles.cameraFallback,
116
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
117
- style: styles.cameraFallbackText,
118
- children: "Camera unavailable."
119
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
120
- style: styles.cameraFallbackHint,
121
- children: "Please enter computer IP manually."
122
- })]
123
- })]
124
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
125
- style: styles.topBar,
126
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
127
- style: styles.titleGroup,
128
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
129
- style: styles.title,
130
- children: "Scan Metro QR"
131
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
132
- style: styles.subtitle,
133
- children: "Expo or Metro URL"
134
- })]
135
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
136
- style: styles.closeButton,
137
- onPress: onClose,
138
- activeOpacity: 0.75,
139
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
140
- style: styles.closeButtonText,
141
- children: "Close"
142
- })
143
- })]
144
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
145
- style: [styles.statusPill, error && styles.statusPillError],
146
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
147
- style: [styles.statusText, error && styles.statusTextError],
148
- children: error ?? 'Point the camera at exp:// or http:// Metro URL.'
149
- })
150
- })]
151
- })
152
- });
153
- }
154
- const styles = _reactNative.StyleSheet.create({
155
- container: {
156
- flex: 1,
157
- backgroundColor: '#000'
158
- },
159
- previewLayer: {
160
- ..._reactNative.StyleSheet.absoluteFillObject
161
- },
162
- camera: {
163
- ..._reactNative.StyleSheet.absoluteFillObject
164
- },
165
- cameraFallback: {
166
- ..._reactNative.StyleSheet.absoluteFillObject,
167
- justifyContent: 'center',
168
- alignItems: 'center',
169
- padding: 24
170
- },
171
- cameraFallbackText: {
172
- fontSize: 16,
173
- color: '#fff',
174
- fontWeight: '600',
175
- marginBottom: 8
176
- },
177
- cameraFallbackHint: {
178
- fontSize: 13,
179
- color: 'rgba(255,255,255,0.6)',
180
- textAlign: 'center'
181
- },
182
- topBar: {
183
- position: 'absolute',
184
- top: 44,
185
- left: 16,
186
- right: 16,
187
- flexDirection: 'row',
188
- alignItems: 'center',
189
- justifyContent: 'space-between',
190
- paddingLeft: 14,
191
- paddingRight: 8,
192
- paddingVertical: 8,
193
- borderRadius: 12,
194
- backgroundColor: 'rgba(0,0,0,0.62)'
195
- },
196
- titleGroup: {
197
- flex: 1,
198
- paddingRight: 10
199
- },
200
- title: {
201
- color: '#fff',
202
- fontSize: 15,
203
- fontWeight: '700'
204
- },
205
- subtitle: {
206
- color: 'rgba(255,255,255,0.68)',
207
- fontSize: 11,
208
- marginTop: 2
209
- },
210
- closeButton: {
211
- alignItems: 'center',
212
- justifyContent: 'center',
213
- paddingHorizontal: 12,
214
- paddingVertical: 8,
215
- borderRadius: 8,
216
- backgroundColor: 'rgba(255,255,255,0.14)'
217
- },
218
- closeButtonText: {
219
- color: '#fff',
220
- fontSize: 14,
221
- fontWeight: '600'
222
- },
223
- statusPill: {
224
- position: 'absolute',
225
- left: 16,
226
- right: 16,
227
- bottom: 30,
228
- paddingHorizontal: 14,
229
- paddingVertical: 11,
230
- borderRadius: 12,
231
- backgroundColor: 'rgba(0,0,0,0.62)'
232
- },
233
- statusPillError: {
234
- backgroundColor: `${_colors.Colors.error}22`,
235
- borderWidth: 1,
236
- borderColor: `${_colors.Colors.error}66`
237
- },
238
- statusText: {
239
- color: '#fff',
240
- fontSize: 13,
241
- textAlign: 'center',
242
- lineHeight: 18
243
- },
244
- statusTextError: {
245
- color: '#fff'
246
- }
247
- });
248
- //# sourceMappingURL=DevConnectQrScanner.js.map
@@ -1 +0,0 @@
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","presentationStyle","onRequestClose","jsxs","View","style","styles","container","previewLayer","kind","CameraKit","Camera","camera","cameraType","CameraType","Back","scanBarcode","onReadCode","showFrame","laserColor","Colors","primary","frameColor","allowedBarcodeTypes","ExpoCamera","onBarCodeScanned","barCodeScannerSettings","barCodeTypes","cameraFallback","Text","cameraFallbackText","cameraFallbackHint","topBar","titleGroup","title","subtitle","TouchableOpacity","closeButton","onPress","activeOpacity","closeButtonText","statusPill","statusPillError","statusText","statusTextError","StyleSheet","create","flex","backgroundColor","absoluteFillObject","justifyContent","alignItems","padding","fontSize","color","fontWeight","marginBottom","textAlign","position","top","left","right","flexDirection","paddingLeft","paddingRight","paddingVertical","borderRadius","marginTop","paddingHorizontal","bottom","borderWidth","borderColor","lineHeight"],"sourceRoot":"../../../../src","sources":["features/devConnect/DevConnectQrScanner.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getScannerModule = getScannerModule;
7
- exports.isCameraKitAvailable = isCameraKitAvailable;
8
- // ---- react-native-camera-kit types ----
9
-
10
- // ---- expo-camera types ----
11
-
12
- // ---- Unified scanner ----
13
-
14
- let cached = false;
15
- function tryCameraKit() {
16
- try {
17
- // eslint-disable-next-line @typescript-eslint/no-require-imports
18
- const mod = require('react-native-camera-kit');
19
- if (mod.Camera) {
20
- return {
21
- kind: 'camera-kit',
22
- CameraKit: {
23
- Camera: mod.Camera,
24
- CameraType: mod.CameraType
25
- }
26
- };
27
- }
28
- } catch {/* not installed */}
29
- return null;
30
- }
31
- function tryExpoCamera() {
32
- try {
33
- // eslint-disable-next-line @typescript-eslint/no-require-imports
34
- const mod = require('expo-camera');
35
- if (mod.Camera) {
36
- return {
37
- kind: 'expo-camera',
38
- ExpoCamera: {
39
- Camera: mod.Camera
40
- }
41
- };
42
- }
43
- } catch {/* not installed */}
44
- return null;
45
- }
46
- function getScannerModule() {
47
- if (cached !== false) return cached;
48
- cached = tryCameraKit() ?? tryExpoCamera();
49
- return cached;
50
- }
51
- function isCameraKitAvailable() {
52
- return getScannerModule() !== null;
53
- }
54
- //# sourceMappingURL=cameraKit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["cached","tryCameraKit","mod","require","Camera","kind","CameraKit","CameraType","tryExpoCamera","ExpoCamera","getScannerModule","isCameraKitAvailable"],"sourceRoot":"../../../../src","sources":["features/devConnect/cameraKit.ts"],"mappings":";;;;;;;AAGA;;AAwBA;;AAiBA;;AAUA,IAAIA,MAAoC,GAAG,KAAK;AAEhD,SAASC,YAAYA,CAAA,EAAyB;EAC5C,IAAI;IACF;IACA,MAAMC,GAAG,GAAGC,OAAO,CAAC,yBAAyB,CAA6B;IAC1E,IAAID,GAAG,CAACE,MAAM,EAAE;MACd,OAAO;QACLC,IAAI,EAAE,YAAY;QAClBC,SAAS,EAAE;UAAEF,MAAM,EAAEF,GAAG,CAACE,MAAM;UAAEG,UAAU,EAAEL,GAAG,CAACK;QAAW;MAC9D,CAAC;IACH;EACF,CAAC,CAAC,MAAM,CAAE;EACV,OAAO,IAAI;AACb;AAEA,SAASC,aAAaA,CAAA,EAAyB;EAC7C,IAAI;IACF;IACA,MAAMN,GAAG,GAAGC,OAAO,CAAC,aAAa,CAA8B;IAC/D,IAAID,GAAG,CAACE,MAAM,EAAE;MACd,OAAO;QACLC,IAAI,EAAE,aAAa;QACnBI,UAAU,EAAE;UAAEL,MAAM,EAAEF,GAAG,CAACE;QAAO;MACnC,CAAC;IACH;EACF,CAAC,CAAC,MAAM,CAAE;EACV,OAAO,IAAI;AACb;AAEO,SAASM,gBAAgBA,CAAA,EAAyB;EACvD,IAAIV,MAAM,KAAK,KAAK,EAAE,OAAOA,MAAM;EACnCA,MAAM,GAAGC,YAAY,CAAC,CAAC,IAAIO,aAAa,CAAC,CAAC;EAC1C,OAAOR,MAAM;AACf;AAEO,SAASW,oBAAoBA,CAAA,EAAY;EAC9C,OAAOD,gBAAgB,CAAC,CAAC,KAAK,IAAI;AACpC","ignoreList":[]}
@@ -1,243 +0,0 @@
1
- "use strict";
2
-
3
- import React, { Component, useCallback, useEffect, useRef, useState } from 'react';
4
- import { Modal, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
- import { Colors } from '../../ui/theme/colors';
6
- import { getScannerModule } from './cameraKit';
7
- import { parseMetroQrPayload } from './devConnectUtils';
8
-
9
- // ─── Camera Error Boundary ─────────────────────────────────
10
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- class CameraErrorBoundary extends Component {
12
- state = {
13
- hasError: false
14
- };
15
- static getDerivedStateFromError() {
16
- return {
17
- hasError: true
18
- };
19
- }
20
- componentDidCatch(error) {
21
- console.warn('[DevConnect] Camera error:', error.message);
22
- this.props.onCameraError(error.message || 'Camera failed to initialize.');
23
- }
24
- render() {
25
- if (this.state.hasError) {
26
- return null;
27
- }
28
- return this.props.children;
29
- }
30
- }
31
-
32
- // ─── QR Scanner ─────────────────────────────────────────────
33
-
34
- export function DevConnectQrScanner({
35
- visible,
36
- onClose,
37
- onScanTarget
38
- }) {
39
- const scannedRef = useRef(false);
40
- const [error, setError] = useState(null);
41
- const [cameraFailed, setCameraFailed] = useState(false);
42
- const scanner = getScannerModule();
43
- useEffect(() => {
44
- if (visible) {
45
- scannedRef.current = false;
46
- setError(null);
47
- setCameraFailed(false);
48
- }
49
- }, [visible]);
50
- const handleScanned = useCallback(rawValue => {
51
- if (scannedRef.current) {
52
- return;
53
- }
54
- if (typeof rawValue !== 'string') {
55
- return;
56
- }
57
- const parsed = parseMetroQrPayload(rawValue);
58
- if (!parsed) {
59
- setError('QR code does not contain a supported Metro URL.');
60
- return;
61
- }
62
- scannedRef.current = true;
63
- setError(null);
64
- onScanTarget({
65
- computerHost: parsed.computerHost,
66
- metroPort: parsed.metroPort
67
- });
68
- onClose();
69
- }, [onClose, onScanTarget]);
70
- const handleCameraKitRead = useCallback(event => {
71
- handleScanned(event.nativeEvent?.codeStringValue ?? '');
72
- }, [handleScanned]);
73
- const handleExpoScanned = useCallback(result => {
74
- handleScanned(result.value ?? '');
75
- }, [handleScanned]);
76
- const handleCameraError = useCallback(_msg => {
77
- setCameraFailed(true);
78
- }, []);
79
- if (!visible || !scanner) {
80
- return null;
81
- }
82
- return /*#__PURE__*/_jsx(Modal, {
83
- visible: visible,
84
- animationType: "slide",
85
- presentationStyle: "fullScreen",
86
- onRequestClose: onClose,
87
- children: /*#__PURE__*/_jsxs(View, {
88
- style: styles.container,
89
- children: [/*#__PURE__*/_jsxs(View, {
90
- style: styles.previewLayer,
91
- children: [!cameraFailed && /*#__PURE__*/_jsx(CameraErrorBoundary, {
92
- onCameraError: handleCameraError,
93
- children: scanner.kind === 'camera-kit' && scanner.CameraKit ? /*#__PURE__*/_jsx(scanner.CameraKit.Camera, {
94
- style: styles.camera,
95
- cameraType: scanner.CameraKit.CameraType?.Back,
96
- scanBarcode: true,
97
- onReadCode: handleCameraKitRead,
98
- showFrame: true,
99
- laserColor: Colors.primary,
100
- frameColor: Colors.primary,
101
- allowedBarcodeTypes: ['qr']
102
- }) : scanner.kind === 'expo-camera' && scanner.ExpoCamera ? /*#__PURE__*/_jsx(scanner.ExpoCamera.Camera, {
103
- style: styles.camera,
104
- onBarCodeScanned: handleExpoScanned,
105
- barCodeScannerSettings: {
106
- barCodeTypes: ['qr']
107
- }
108
- }) : null
109
- }), cameraFailed && /*#__PURE__*/_jsxs(View, {
110
- style: styles.cameraFallback,
111
- children: [/*#__PURE__*/_jsx(Text, {
112
- style: styles.cameraFallbackText,
113
- children: "Camera unavailable."
114
- }), /*#__PURE__*/_jsx(Text, {
115
- style: styles.cameraFallbackHint,
116
- children: "Please enter computer IP manually."
117
- })]
118
- })]
119
- }), /*#__PURE__*/_jsxs(View, {
120
- style: styles.topBar,
121
- children: [/*#__PURE__*/_jsxs(View, {
122
- style: styles.titleGroup,
123
- children: [/*#__PURE__*/_jsx(Text, {
124
- style: styles.title,
125
- children: "Scan Metro QR"
126
- }), /*#__PURE__*/_jsx(Text, {
127
- style: styles.subtitle,
128
- children: "Expo or Metro URL"
129
- })]
130
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
131
- style: styles.closeButton,
132
- onPress: onClose,
133
- activeOpacity: 0.75,
134
- children: /*#__PURE__*/_jsx(Text, {
135
- style: styles.closeButtonText,
136
- children: "Close"
137
- })
138
- })]
139
- }), /*#__PURE__*/_jsx(View, {
140
- style: [styles.statusPill, error && styles.statusPillError],
141
- children: /*#__PURE__*/_jsx(Text, {
142
- style: [styles.statusText, error && styles.statusTextError],
143
- children: error ?? 'Point the camera at exp:// or http:// Metro URL.'
144
- })
145
- })]
146
- })
147
- });
148
- }
149
- const styles = StyleSheet.create({
150
- container: {
151
- flex: 1,
152
- backgroundColor: '#000'
153
- },
154
- previewLayer: {
155
- ...StyleSheet.absoluteFillObject
156
- },
157
- camera: {
158
- ...StyleSheet.absoluteFillObject
159
- },
160
- cameraFallback: {
161
- ...StyleSheet.absoluteFillObject,
162
- justifyContent: 'center',
163
- alignItems: 'center',
164
- padding: 24
165
- },
166
- cameraFallbackText: {
167
- fontSize: 16,
168
- color: '#fff',
169
- fontWeight: '600',
170
- marginBottom: 8
171
- },
172
- cameraFallbackHint: {
173
- fontSize: 13,
174
- color: 'rgba(255,255,255,0.6)',
175
- textAlign: 'center'
176
- },
177
- topBar: {
178
- position: 'absolute',
179
- top: 44,
180
- left: 16,
181
- right: 16,
182
- flexDirection: 'row',
183
- alignItems: 'center',
184
- justifyContent: 'space-between',
185
- paddingLeft: 14,
186
- paddingRight: 8,
187
- paddingVertical: 8,
188
- borderRadius: 12,
189
- backgroundColor: 'rgba(0,0,0,0.62)'
190
- },
191
- titleGroup: {
192
- flex: 1,
193
- paddingRight: 10
194
- },
195
- title: {
196
- color: '#fff',
197
- fontSize: 15,
198
- fontWeight: '700'
199
- },
200
- subtitle: {
201
- color: 'rgba(255,255,255,0.68)',
202
- fontSize: 11,
203
- marginTop: 2
204
- },
205
- closeButton: {
206
- alignItems: 'center',
207
- justifyContent: 'center',
208
- paddingHorizontal: 12,
209
- paddingVertical: 8,
210
- borderRadius: 8,
211
- backgroundColor: 'rgba(255,255,255,0.14)'
212
- },
213
- closeButtonText: {
214
- color: '#fff',
215
- fontSize: 14,
216
- fontWeight: '600'
217
- },
218
- statusPill: {
219
- position: 'absolute',
220
- left: 16,
221
- right: 16,
222
- bottom: 30,
223
- paddingHorizontal: 14,
224
- paddingVertical: 11,
225
- borderRadius: 12,
226
- backgroundColor: 'rgba(0,0,0,0.62)'
227
- },
228
- statusPillError: {
229
- backgroundColor: `${Colors.error}22`,
230
- borderWidth: 1,
231
- borderColor: `${Colors.error}66`
232
- },
233
- statusText: {
234
- color: '#fff',
235
- fontSize: 13,
236
- textAlign: 'center',
237
- lineHeight: 18
238
- },
239
- statusTextError: {
240
- color: '#fff'
241
- }
242
- });
243
- //# sourceMappingURL=DevConnectQrScanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Component","useCallback","useEffect","useRef","useState","Modal","StyleSheet","Text","TouchableOpacity","View","Colors","getScannerModule","parseMetroQrPayload","jsx","_jsx","jsxs","_jsxs","CameraErrorBoundary","state","hasError","getDerivedStateFromError","componentDidCatch","error","console","warn","message","props","onCameraError","render","children","DevConnectQrScanner","visible","onClose","onScanTarget","scannedRef","setError","cameraFailed","setCameraFailed","scanner","current","handleScanned","rawValue","parsed","computerHost","metroPort","handleCameraKitRead","event","nativeEvent","codeStringValue","handleExpoScanned","result","value","handleCameraError","_msg","animationType","presentationStyle","onRequestClose","style","styles","container","previewLayer","kind","CameraKit","Camera","camera","cameraType","CameraType","Back","scanBarcode","onReadCode","showFrame","laserColor","primary","frameColor","allowedBarcodeTypes","ExpoCamera","onBarCodeScanned","barCodeScannerSettings","barCodeTypes","cameraFallback","cameraFallbackText","cameraFallbackHint","topBar","titleGroup","title","subtitle","closeButton","onPress","activeOpacity","closeButtonText","statusPill","statusPillError","statusText","statusTextError","create","flex","backgroundColor","absoluteFillObject","justifyContent","alignItems","padding","fontSize","color","fontWeight","marginBottom","textAlign","position","top","left","right","flexDirection","paddingLeft","paddingRight","paddingVertical","borderRadius","marginTop","paddingHorizontal","bottom","borderWidth","borderColor","lineHeight"],"sourceRoot":"../../../../src","sources":["features/devConnect/DevConnectQrScanner.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- // ---- react-native-camera-kit types ----
4
-
5
- // ---- expo-camera types ----
6
-
7
- // ---- Unified scanner ----
8
-
9
- let cached = false;
10
- function tryCameraKit() {
11
- try {
12
- // eslint-disable-next-line @typescript-eslint/no-require-imports
13
- const mod = require('react-native-camera-kit');
14
- if (mod.Camera) {
15
- return {
16
- kind: 'camera-kit',
17
- CameraKit: {
18
- Camera: mod.Camera,
19
- CameraType: mod.CameraType
20
- }
21
- };
22
- }
23
- } catch {/* not installed */}
24
- return null;
25
- }
26
- function tryExpoCamera() {
27
- try {
28
- // eslint-disable-next-line @typescript-eslint/no-require-imports
29
- const mod = require('expo-camera');
30
- if (mod.Camera) {
31
- return {
32
- kind: 'expo-camera',
33
- ExpoCamera: {
34
- Camera: mod.Camera
35
- }
36
- };
37
- }
38
- } catch {/* not installed */}
39
- return null;
40
- }
41
- export function getScannerModule() {
42
- if (cached !== false) return cached;
43
- cached = tryCameraKit() ?? tryExpoCamera();
44
- return cached;
45
- }
46
- export function isCameraKitAvailable() {
47
- return getScannerModule() !== null;
48
- }
49
- //# sourceMappingURL=cameraKit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["cached","tryCameraKit","mod","require","Camera","kind","CameraKit","CameraType","tryExpoCamera","ExpoCamera","getScannerModule","isCameraKitAvailable"],"sourceRoot":"../../../../src","sources":["features/devConnect/cameraKit.ts"],"mappings":";;AAGA;;AAwBA;;AAiBA;;AAUA,IAAIA,MAAoC,GAAG,KAAK;AAEhD,SAASC,YAAYA,CAAA,EAAyB;EAC5C,IAAI;IACF;IACA,MAAMC,GAAG,GAAGC,OAAO,CAAC,yBAAyB,CAA6B;IAC1E,IAAID,GAAG,CAACE,MAAM,EAAE;MACd,OAAO;QACLC,IAAI,EAAE,YAAY;QAClBC,SAAS,EAAE;UAAEF,MAAM,EAAEF,GAAG,CAACE,MAAM;UAAEG,UAAU,EAAEL,GAAG,CAACK;QAAW;MAC9D,CAAC;IACH;EACF,CAAC,CAAC,MAAM,CAAE;EACV,OAAO,IAAI;AACb;AAEA,SAASC,aAAaA,CAAA,EAAyB;EAC7C,IAAI;IACF;IACA,MAAMN,GAAG,GAAGC,OAAO,CAAC,aAAa,CAA8B;IAC/D,IAAID,GAAG,CAACE,MAAM,EAAE;MACd,OAAO;QACLC,IAAI,EAAE,aAAa;QACnBI,UAAU,EAAE;UAAEL,MAAM,EAAEF,GAAG,CAACE;QAAO;MACnC,CAAC;IACH;EACF,CAAC,CAAC,MAAM,CAAE;EACV,OAAO,IAAI;AACb;AAEA,OAAO,SAASM,gBAAgBA,CAAA,EAAyB;EACvD,IAAIV,MAAM,KAAK,KAAK,EAAE,OAAOA,MAAM;EACnCA,MAAM,GAAGC,YAAY,CAAC,CAAC,IAAIO,aAAa,CAAC,CAAC;EAC1C,OAAOR,MAAM;AACf;AAEA,OAAO,SAASW,oBAAoBA,CAAA,EAAY;EAC9C,OAAOD,gBAAgB,CAAC,CAAC,KAAK,IAAI;AACpC","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { type ParsedComputerTarget } from './devConnectUtils';
3
- interface DevConnectQrScannerProps {
4
- visible: boolean;
5
- onClose: () => void;
6
- onScanTarget: (target: ParsedComputerTarget) => void;
7
- }
8
- export declare function DevConnectQrScanner({ visible, onClose, onScanTarget }: DevConnectQrScannerProps): React.JSX.Element | null;
9
- export {};
10
- //# sourceMappingURL=DevConnectQrScanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DevConnectQrScanner.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/DevConnectQrScanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAenF,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAmCnF,UAAU,wBAAwB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,wBAAwB,4BAyG/F"}