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