@@ -40,6 +40,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
40
40
description : '' ,
41
41
filename : undefined ,
42
42
attachment : undefined ,
43
+ attachmentUri : undefined ,
43
44
} ;
44
45
45
46
public constructor ( props : FeedbackWidgetProps ) {
@@ -59,6 +60,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
59
60
description : FeedbackWidget . _savedState . description || '' ,
60
61
filename : FeedbackWidget . _savedState . filename || undefined ,
61
62
attachment : FeedbackWidget . _savedState . attachment || undefined ,
63
+ attachmentUri : FeedbackWidget . _savedState . attachmentUri || undefined ,
62
64
} ;
63
65
}
64
66
@@ -143,24 +145,25 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
143
145
const imageUri = result . assets [ 0 ] . uri ;
144
146
NATIVE . getDataFromUri ( imageUri ) . then ( ( data ) => {
145
147
if ( data != null ) {
146
- this . setState ( { filename, attachment : data } ) ;
148
+ this . setState ( { filename, attachment : data , attachmentUri : imageUri } ) ;
147
149
} else {
148
150
logger . error ( 'Failed to read image data from uri:' , imageUri ) ;
149
151
}
150
152
} )
151
- . catch ( ( error ) => {
152
- logger . error ( 'Failed to read image data from uri:' , imageUri , 'error: ' , error ) ;
153
- } ) ;
153
+ . catch ( ( error ) => {
154
+ logger . error ( 'Failed to read image data from uri:' , imageUri , 'error: ' , error ) ;
155
+ } ) ;
154
156
}
155
157
} else {
156
158
// Defaulting to the onAddScreenshot callback
157
159
const { onAddScreenshot } = { ...defaultConfiguration , ...this . props } ;
158
160
onAddScreenshot ( ( filename : string , attachement : Uint8Array ) => {
159
- this . setState ( { filename, attachment : attachement } ) ;
161
+ // TODO: Add support for image uri when using onAddScreenshot
162
+ this . setState ( { filename, attachment : attachement , attachmentUri : undefined } ) ;
160
163
} ) ;
161
164
}
162
165
} else {
163
- this . setState ( { filename : undefined , attachment : undefined } ) ;
166
+ this . setState ( { filename : undefined , attachment : undefined , attachmentUri : undefined } ) ;
164
167
}
165
168
}
166
169
@@ -261,13 +264,21 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
261
264
multiline
262
265
/>
263
266
{ ( config . enableScreenshot || imagePickerConfiguration . imagePicker ) && (
264
- < TouchableOpacity style = { styles . screenshotButton } onPress = { this . onScreenshotButtonPress } >
265
- < Text style = { styles . screenshotText } >
266
- { ! this . state . filename && ! this . state . attachment
267
- ? text . addScreenshotButtonLabel
268
- : text . removeScreenshotButtonLabel }
269
- </ Text >
270
- </ TouchableOpacity >
267
+ < View style = { styles . screenshotContainer } >
268
+ { this . state . attachmentUri && (
269
+ < Image
270
+ source = { { uri : this . state . attachmentUri } }
271
+ style = { styles . screenshotThumbnail }
272
+ />
273
+ ) }
274
+ < TouchableOpacity style = { styles . screenshotButton } onPress = { this . onScreenshotButtonPress } >
275
+ < Text style = { styles . screenshotText } >
276
+ { ! this . state . filename && ! this . state . attachment
277
+ ? text . addScreenshotButtonLabel
278
+ : text . removeScreenshotButtonLabel }
279
+ </ Text >
280
+ </ TouchableOpacity >
281
+ </ View >
271
282
) }
272
283
< TouchableOpacity style = { styles . submitButton } onPress = { this . handleFeedbackSubmit } >
273
284
< Text style = { styles . submitText } > { text . submitButtonLabel } </ Text >
@@ -295,6 +306,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
295
306
description : '' ,
296
307
filename : undefined ,
297
308
attachment : undefined ,
309
+ attachmentUri : undefined ,
298
310
} ;
299
311
} ;
300
312
}
0 commit comments