react-native-bug-reporter 1.0.0

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 (152) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +217 -0
  3. package/android/build.gradle +49 -0
  4. package/android/src/main/AndroidManifest.xml +11 -0
  5. package/android/src/main/java/com/bugreporter/ScreenshotDetectorModule.kt +227 -0
  6. package/android/src/main/java/com/bugreporter/ScreenshotDetectorPackage.kt +20 -0
  7. package/ios/RNBugReporterScreenshot.m +11 -0
  8. package/ios/RNBugReporterScreenshot.swift +113 -0
  9. package/lib/commonjs/BugReporterProvider.js +139 -0
  10. package/lib/commonjs/BugReporterProvider.js.map +1 -0
  11. package/lib/commonjs/collectors/appInfo.js +21 -0
  12. package/lib/commonjs/collectors/appInfo.js.map +1 -0
  13. package/lib/commonjs/collectors/collectContext.js +45 -0
  14. package/lib/commonjs/collectors/collectContext.js.map +1 -0
  15. package/lib/commonjs/collectors/deviceInfo.js +41 -0
  16. package/lib/commonjs/collectors/deviceInfo.js.map +1 -0
  17. package/lib/commonjs/collectors/networkInfo.js +33 -0
  18. package/lib/commonjs/collectors/networkInfo.js.map +1 -0
  19. package/lib/commonjs/components/BugReportAdminScreen.js +225 -0
  20. package/lib/commonjs/components/BugReportAdminScreen.js.map +1 -0
  21. package/lib/commonjs/components/BugReportModal.js +341 -0
  22. package/lib/commonjs/components/BugReportModal.js.map +1 -0
  23. package/lib/commonjs/components/ScreenshotEditor.js +466 -0
  24. package/lib/commonjs/components/ScreenshotEditor.js.map +1 -0
  25. package/lib/commonjs/components/ScreenshotPreview.js +134 -0
  26. package/lib/commonjs/components/ScreenshotPreview.js.map +1 -0
  27. package/lib/commonjs/components/SeveritySelector.js +65 -0
  28. package/lib/commonjs/components/SeveritySelector.js.map +1 -0
  29. package/lib/commonjs/context/BugReporterContext.js +24 -0
  30. package/lib/commonjs/context/BugReporterContext.js.map +1 -0
  31. package/lib/commonjs/hooks/useScreenshotDetector.js +22 -0
  32. package/lib/commonjs/hooks/useScreenshotDetector.js.map +1 -0
  33. package/lib/commonjs/index.js +87 -0
  34. package/lib/commonjs/index.js.map +1 -0
  35. package/lib/commonjs/native/ScreenshotDetector.js +72 -0
  36. package/lib/commonjs/native/ScreenshotDetector.js.map +1 -0
  37. package/lib/commonjs/navigation/screenTracker.js +47 -0
  38. package/lib/commonjs/navigation/screenTracker.js.map +1 -0
  39. package/lib/commonjs/package.json +1 -0
  40. package/lib/commonjs/services/bugReportService.js +61 -0
  41. package/lib/commonjs/services/bugReportService.js.map +1 -0
  42. package/lib/commonjs/services/supabaseService.js +166 -0
  43. package/lib/commonjs/services/supabaseService.js.map +1 -0
  44. package/lib/commonjs/theme.js +28 -0
  45. package/lib/commonjs/theme.js.map +1 -0
  46. package/lib/commonjs/types.js +35 -0
  47. package/lib/commonjs/types.js.map +1 -0
  48. package/lib/commonjs/utils/logger.js +29 -0
  49. package/lib/commonjs/utils/logger.js.map +1 -0
  50. package/lib/module/BugReporterProvider.js +134 -0
  51. package/lib/module/BugReporterProvider.js.map +1 -0
  52. package/lib/module/collectors/appInfo.js +16 -0
  53. package/lib/module/collectors/appInfo.js.map +1 -0
  54. package/lib/module/collectors/collectContext.js +41 -0
  55. package/lib/module/collectors/collectContext.js.map +1 -0
  56. package/lib/module/collectors/deviceInfo.js +37 -0
  57. package/lib/module/collectors/deviceInfo.js.map +1 -0
  58. package/lib/module/collectors/networkInfo.js +29 -0
  59. package/lib/module/collectors/networkInfo.js.map +1 -0
  60. package/lib/module/components/BugReportAdminScreen.js +221 -0
  61. package/lib/module/components/BugReportAdminScreen.js.map +1 -0
  62. package/lib/module/components/BugReportModal.js +337 -0
  63. package/lib/module/components/BugReportModal.js.map +1 -0
  64. package/lib/module/components/ScreenshotEditor.js +461 -0
  65. package/lib/module/components/ScreenshotEditor.js.map +1 -0
  66. package/lib/module/components/ScreenshotPreview.js +130 -0
  67. package/lib/module/components/ScreenshotPreview.js.map +1 -0
  68. package/lib/module/components/SeveritySelector.js +61 -0
  69. package/lib/module/components/SeveritySelector.js.map +1 -0
  70. package/lib/module/context/BugReporterContext.js +19 -0
  71. package/lib/module/context/BugReporterContext.js.map +1 -0
  72. package/lib/module/hooks/useScreenshotDetector.js +18 -0
  73. package/lib/module/hooks/useScreenshotDetector.js.map +1 -0
  74. package/lib/module/index.js +32 -0
  75. package/lib/module/index.js.map +1 -0
  76. package/lib/module/native/ScreenshotDetector.js +68 -0
  77. package/lib/module/native/ScreenshotDetector.js.map +1 -0
  78. package/lib/module/navigation/screenTracker.js +41 -0
  79. package/lib/module/navigation/screenTracker.js.map +1 -0
  80. package/lib/module/services/bugReportService.js +57 -0
  81. package/lib/module/services/bugReportService.js.map +1 -0
  82. package/lib/module/services/supabaseService.js +159 -0
  83. package/lib/module/services/supabaseService.js.map +1 -0
  84. package/lib/module/theme.js +23 -0
  85. package/lib/module/theme.js.map +1 -0
  86. package/lib/module/types.js +31 -0
  87. package/lib/module/types.js.map +1 -0
  88. package/lib/module/utils/logger.js +25 -0
  89. package/lib/module/utils/logger.js.map +1 -0
  90. package/lib/typescript/src/BugReporterProvider.d.ts +18 -0
  91. package/lib/typescript/src/BugReporterProvider.d.ts.map +1 -0
  92. package/lib/typescript/src/collectors/appInfo.d.ts +6 -0
  93. package/lib/typescript/src/collectors/appInfo.d.ts.map +1 -0
  94. package/lib/typescript/src/collectors/collectContext.d.ts +7 -0
  95. package/lib/typescript/src/collectors/collectContext.d.ts.map +1 -0
  96. package/lib/typescript/src/collectors/deviceInfo.d.ts +7 -0
  97. package/lib/typescript/src/collectors/deviceInfo.d.ts.map +1 -0
  98. package/lib/typescript/src/collectors/networkInfo.d.ts +6 -0
  99. package/lib/typescript/src/collectors/networkInfo.d.ts.map +1 -0
  100. package/lib/typescript/src/components/BugReportAdminScreen.d.ts +11 -0
  101. package/lib/typescript/src/components/BugReportAdminScreen.d.ts.map +1 -0
  102. package/lib/typescript/src/components/BugReportModal.d.ts +20 -0
  103. package/lib/typescript/src/components/BugReportModal.d.ts.map +1 -0
  104. package/lib/typescript/src/components/ScreenshotEditor.d.ts +16 -0
  105. package/lib/typescript/src/components/ScreenshotEditor.d.ts.map +1 -0
  106. package/lib/typescript/src/components/ScreenshotPreview.d.ts +11 -0
  107. package/lib/typescript/src/components/ScreenshotPreview.d.ts.map +1 -0
  108. package/lib/typescript/src/components/SeveritySelector.d.ts +10 -0
  109. package/lib/typescript/src/components/SeveritySelector.d.ts.map +1 -0
  110. package/lib/typescript/src/context/BugReporterContext.d.ts +20 -0
  111. package/lib/typescript/src/context/BugReporterContext.d.ts.map +1 -0
  112. package/lib/typescript/src/hooks/useScreenshotDetector.d.ts +7 -0
  113. package/lib/typescript/src/hooks/useScreenshotDetector.d.ts.map +1 -0
  114. package/lib/typescript/src/index.d.ts +26 -0
  115. package/lib/typescript/src/index.d.ts.map +1 -0
  116. package/lib/typescript/src/native/ScreenshotDetector.d.ts +15 -0
  117. package/lib/typescript/src/native/ScreenshotDetector.d.ts.map +1 -0
  118. package/lib/typescript/src/navigation/screenTracker.d.ts +7 -0
  119. package/lib/typescript/src/navigation/screenTracker.d.ts.map +1 -0
  120. package/lib/typescript/src/services/bugReportService.d.ts +17 -0
  121. package/lib/typescript/src/services/bugReportService.d.ts.map +1 -0
  122. package/lib/typescript/src/services/supabaseService.d.ts +38 -0
  123. package/lib/typescript/src/services/supabaseService.d.ts.map +1 -0
  124. package/lib/typescript/src/theme.d.ts +7 -0
  125. package/lib/typescript/src/theme.d.ts.map +1 -0
  126. package/lib/typescript/src/types.d.ts +144 -0
  127. package/lib/typescript/src/types.d.ts.map +1 -0
  128. package/lib/typescript/src/utils/logger.d.ts +7 -0
  129. package/lib/typescript/src/utils/logger.d.ts.map +1 -0
  130. package/package.json +100 -0
  131. package/react-native-bug-reporter.podspec +22 -0
  132. package/react-native.config.js +18 -0
  133. package/src/BugReporterProvider.tsx +178 -0
  134. package/src/collectors/appInfo.ts +15 -0
  135. package/src/collectors/collectContext.ts +47 -0
  136. package/src/collectors/deviceInfo.ts +51 -0
  137. package/src/collectors/networkInfo.ts +31 -0
  138. package/src/components/BugReportAdminScreen.tsx +160 -0
  139. package/src/components/BugReportModal.tsx +315 -0
  140. package/src/components/ScreenshotEditor.tsx +410 -0
  141. package/src/components/ScreenshotPreview.tsx +98 -0
  142. package/src/components/SeveritySelector.tsx +59 -0
  143. package/src/context/BugReporterContext.ts +29 -0
  144. package/src/hooks/useScreenshotDetector.ts +20 -0
  145. package/src/index.ts +51 -0
  146. package/src/native/ScreenshotDetector.ts +87 -0
  147. package/src/navigation/screenTracker.ts +40 -0
  148. package/src/services/bugReportService.ts +81 -0
  149. package/src/services/supabaseService.ts +195 -0
  150. package/src/theme.ts +23 -0
  151. package/src/types.ts +156 -0
  152. package/src/utils/logger.ts +24 -0
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BugReportModal = BugReportModal;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _SeveritySelector = require("./SeveritySelector");
10
+ var _ScreenshotPreview = require("./ScreenshotPreview");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const SUBMIT_LABELS = {
13
+ collecting: 'Collecting…',
14
+ uploading: 'Uploading…',
15
+ saving: 'Saving…'
16
+ };
17
+ function BugReportModal({
18
+ visible,
19
+ screenshot,
20
+ context,
21
+ showContext = true,
22
+ submitState,
23
+ errorMessage,
24
+ theme,
25
+ onRemoveScreenshot,
26
+ onRequestEdit,
27
+ onSubmit,
28
+ onClose
29
+ }) {
30
+ const [title, setTitle] = (0, _react.useState)('');
31
+ const [description, setDescription] = (0, _react.useState)('');
32
+ const [severity, setSeverity] = (0, _react.useState)('medium');
33
+ const [touched, setTouched] = (0, _react.useState)(false);
34
+
35
+ // Reset the form whenever the modal is freshly opened.
36
+ (0, _react.useEffect)(() => {
37
+ if (visible) {
38
+ setTitle('');
39
+ setDescription('');
40
+ setSeverity('medium');
41
+ setTouched(false);
42
+ }
43
+ }, [visible]);
44
+ const busy = submitState === 'collecting' || submitState === 'uploading' || submitState === 'saving';
45
+ const titleValid = title.trim().length > 0;
46
+ const handleSubmit = () => {
47
+ setTouched(true);
48
+ if (!titleValid || busy) return;
49
+ onSubmit({
50
+ title,
51
+ description,
52
+ severity
53
+ });
54
+ };
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
56
+ visible: visible,
57
+ transparent: true,
58
+ animationType: "slide",
59
+ onRequestClose: busy ? undefined : onClose,
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.KeyboardAvoidingView, {
61
+ style: styles.backdrop,
62
+ behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : undefined,
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
64
+ style: [styles.sheet, {
65
+ backgroundColor: theme.backgroundColor
66
+ }],
67
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
68
+ style: styles.handle
69
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
70
+ style: styles.header,
71
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
72
+ style: [styles.heading, {
73
+ color: theme.textColor
74
+ }],
75
+ children: "Report a bug"
76
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
77
+ onPress: onClose,
78
+ disabled: busy,
79
+ accessibilityRole: "button",
80
+ accessibilityLabel: "Close",
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
82
+ style: [styles.close, {
83
+ color: theme.mutedColor,
84
+ opacity: busy ? 0.4 : 1
85
+ }],
86
+ children: "\u2715"
87
+ })
88
+ })]
89
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
90
+ keyboardShouldPersistTaps: "handled",
91
+ contentContainerStyle: styles.body,
92
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenshotPreview.ScreenshotPreview, {
93
+ screenshot: screenshot,
94
+ onRemove: onRemoveScreenshot,
95
+ onEdit: onRequestEdit,
96
+ theme: theme
97
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
98
+ style: [styles.label, {
99
+ color: theme.textColor
100
+ }],
101
+ children: "Title *"
102
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
103
+ value: title,
104
+ onChangeText: setTitle,
105
+ placeholder: "Short summary of the issue",
106
+ placeholderTextColor: theme.mutedColor,
107
+ editable: !busy,
108
+ style: [styles.input, {
109
+ color: theme.textColor,
110
+ borderColor: touched && !titleValid ? theme.errorColor : theme.borderColor
111
+ }]
112
+ }), touched && !titleValid && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
113
+ style: [styles.errorText, {
114
+ color: theme.errorColor
115
+ }],
116
+ children: "A title is required"
117
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
118
+ style: [styles.label, {
119
+ color: theme.textColor
120
+ }],
121
+ children: "Description"
122
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
123
+ value: description,
124
+ onChangeText: setDescription,
125
+ placeholder: "What happened? What did you expect?",
126
+ placeholderTextColor: theme.mutedColor,
127
+ editable: !busy,
128
+ multiline: true,
129
+ numberOfLines: 4,
130
+ style: [styles.input, styles.textArea, {
131
+ color: theme.textColor,
132
+ borderColor: theme.borderColor
133
+ }]
134
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
135
+ style: [styles.label, {
136
+ color: theme.textColor
137
+ }],
138
+ children: "Severity"
139
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SeveritySelector.SeveritySelector, {
140
+ value: severity,
141
+ onChange: setSeverity,
142
+ theme: theme
143
+ }), showContext && context && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
144
+ style: [styles.context, {
145
+ borderColor: theme.borderColor
146
+ }],
147
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
148
+ style: [styles.contextTitle, {
149
+ color: theme.mutedColor
150
+ }],
151
+ children: "Automatically attached"
152
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ContextRow, {
153
+ theme: theme,
154
+ label: "Screen",
155
+ value: context.currentScreen || '—'
156
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ContextRow, {
157
+ theme: theme,
158
+ label: "User",
159
+ value: context.user.name || context.user.email || 'Anonymous'
160
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ContextRow, {
161
+ theme: theme,
162
+ label: "App",
163
+ value: `${context.app.version} (${context.app.buildNumber})`
164
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ContextRow, {
165
+ theme: theme,
166
+ label: "Device",
167
+ value: `${context.device.brand} ${context.device.model} · ${context.device.systemName} ${context.device.systemVersion}`
168
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ContextRow, {
169
+ theme: theme,
170
+ label: "Network",
171
+ value: context.network.type
172
+ })]
173
+ }), errorMessage && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
174
+ style: [styles.errorText, {
175
+ color: theme.errorColor
176
+ }],
177
+ children: errorMessage
178
+ })]
179
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
180
+ style: [styles.footer, {
181
+ borderColor: theme.borderColor
182
+ }],
183
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
184
+ accessibilityRole: "button",
185
+ onPress: handleSubmit,
186
+ disabled: busy,
187
+ style: [styles.submit, {
188
+ backgroundColor: theme.primaryColor,
189
+ opacity: busy ? 0.7 : 1
190
+ }],
191
+ children: busy ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
192
+ style: styles.submitBusy,
193
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
194
+ color: "#fff",
195
+ size: "small"
196
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
197
+ style: styles.submitText,
198
+ children: SUBMIT_LABELS[submitState] || 'Submitting…'
199
+ })]
200
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
201
+ style: styles.submitText,
202
+ children: "Submit report"
203
+ })
204
+ })
205
+ })]
206
+ })
207
+ })
208
+ });
209
+ }
210
+ function ContextRow({
211
+ label,
212
+ value,
213
+ theme
214
+ }) {
215
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
216
+ style: styles.contextRow,
217
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
218
+ style: [styles.contextLabel, {
219
+ color: theme.mutedColor
220
+ }],
221
+ children: label
222
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
223
+ style: [styles.contextValue, {
224
+ color: theme.textColor
225
+ }],
226
+ numberOfLines: 1,
227
+ children: value
228
+ })]
229
+ });
230
+ }
231
+ const styles = _reactNative.StyleSheet.create({
232
+ backdrop: {
233
+ flex: 1,
234
+ justifyContent: 'flex-end',
235
+ backgroundColor: 'rgba(0,0,0,0.45)'
236
+ },
237
+ sheet: {
238
+ maxHeight: '92%',
239
+ borderTopLeftRadius: 20,
240
+ borderTopRightRadius: 20,
241
+ paddingTop: 8
242
+ },
243
+ handle: {
244
+ alignSelf: 'center',
245
+ width: 40,
246
+ height: 4,
247
+ borderRadius: 2,
248
+ backgroundColor: '#cbd5e1',
249
+ marginBottom: 8
250
+ },
251
+ header: {
252
+ flexDirection: 'row',
253
+ alignItems: 'center',
254
+ justifyContent: 'space-between',
255
+ paddingHorizontal: 20,
256
+ paddingBottom: 8
257
+ },
258
+ heading: {
259
+ fontSize: 18,
260
+ fontWeight: '700'
261
+ },
262
+ close: {
263
+ fontSize: 18,
264
+ fontWeight: '600',
265
+ padding: 4
266
+ },
267
+ body: {
268
+ paddingHorizontal: 20,
269
+ paddingBottom: 16,
270
+ gap: 6
271
+ },
272
+ label: {
273
+ fontSize: 13,
274
+ fontWeight: '600',
275
+ marginTop: 14,
276
+ marginBottom: 6
277
+ },
278
+ input: {
279
+ borderWidth: 1,
280
+ borderRadius: 10,
281
+ paddingHorizontal: 12,
282
+ paddingVertical: _reactNative.Platform.OS === 'ios' ? 12 : 8,
283
+ fontSize: 15
284
+ },
285
+ textArea: {
286
+ height: 100,
287
+ textAlignVertical: 'top'
288
+ },
289
+ errorText: {
290
+ fontSize: 12,
291
+ marginTop: 4
292
+ },
293
+ context: {
294
+ marginTop: 18,
295
+ borderWidth: 1,
296
+ borderRadius: 12,
297
+ padding: 12,
298
+ gap: 6
299
+ },
300
+ contextTitle: {
301
+ fontSize: 11,
302
+ fontWeight: '700',
303
+ textTransform: 'uppercase',
304
+ letterSpacing: 0.5,
305
+ marginBottom: 4
306
+ },
307
+ contextRow: {
308
+ flexDirection: 'row',
309
+ justifyContent: 'space-between',
310
+ gap: 12
311
+ },
312
+ contextLabel: {
313
+ fontSize: 12
314
+ },
315
+ contextValue: {
316
+ fontSize: 12,
317
+ flex: 1,
318
+ textAlign: 'right'
319
+ },
320
+ footer: {
321
+ padding: 16,
322
+ paddingBottom: _reactNative.Platform.OS === 'ios' ? 28 : 16,
323
+ borderTopWidth: 1
324
+ },
325
+ submit: {
326
+ borderRadius: 12,
327
+ paddingVertical: 15,
328
+ alignItems: 'center'
329
+ },
330
+ submitBusy: {
331
+ flexDirection: 'row',
332
+ alignItems: 'center',
333
+ gap: 8
334
+ },
335
+ submitText: {
336
+ color: '#fff',
337
+ fontSize: 16,
338
+ fontWeight: '700'
339
+ }
340
+ });
341
+ //# sourceMappingURL=BugReportModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_SeveritySelector","_ScreenshotPreview","_jsxRuntime","SUBMIT_LABELS","collecting","uploading","saving","BugReportModal","visible","screenshot","context","showContext","submitState","errorMessage","theme","onRemoveScreenshot","onRequestEdit","onSubmit","onClose","title","setTitle","useState","description","setDescription","severity","setSeverity","touched","setTouched","useEffect","busy","titleValid","trim","length","handleSubmit","jsx","Modal","transparent","animationType","onRequestClose","undefined","children","KeyboardAvoidingView","style","styles","backdrop","behavior","Platform","OS","jsxs","View","sheet","backgroundColor","handle","header","Text","heading","color","textColor","TouchableOpacity","onPress","disabled","accessibilityRole","accessibilityLabel","close","mutedColor","opacity","ScrollView","keyboardShouldPersistTaps","contentContainerStyle","body","ScreenshotPreview","onRemove","onEdit","label","TextInput","value","onChangeText","placeholder","placeholderTextColor","editable","input","borderColor","errorColor","errorText","multiline","numberOfLines","textArea","SeveritySelector","onChange","contextTitle","ContextRow","currentScreen","user","name","email","app","version","buildNumber","device","brand","model","systemName","systemVersion","network","type","footer","submit","primaryColor","submitBusy","ActivityIndicator","size","submitText","contextRow","contextLabel","contextValue","StyleSheet","create","flex","justifyContent","maxHeight","borderTopLeftRadius","borderTopRightRadius","paddingTop","alignSelf","width","height","borderRadius","marginBottom","flexDirection","alignItems","paddingHorizontal","paddingBottom","fontSize","fontWeight","padding","gap","marginTop","borderWidth","paddingVertical","textAlignVertical","textTransform","letterSpacing","textAlign","borderTopWidth"],"sourceRoot":"../../../src","sources":["components/BugReportModal.tsx"],"mappings":"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","ignoreList":[]}