@@ -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
@@ -141,24 +143,25 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
141
143
const imageUri = result . assets [ 0 ] . uri ;
142
144
NATIVE . getDataFromUri ( imageUri ) . then ( ( data ) => {
143
145
if ( data != null ) {
144
- this . setState ( { filename, attachment : data } ) ;
146
+ this . setState ( { filename, attachment : data , attachmentUri : imageUri } ) ;
145
147
} else {
146
148
logger . error ( 'Failed to read image data from uri:' , imageUri ) ;
147
149
}
148
150
} )
149
- . catch ( ( error ) => {
150
- logger . error ( 'Failed to read image data from uri:' , imageUri , 'error: ' , error ) ;
151
- } ) ;
151
+ . catch ( ( error ) => {
152
+ logger . error ( 'Failed to read image data from uri:' , imageUri , 'error: ' , error ) ;
153
+ } ) ;
152
154
}
153
155
} else {
154
156
// Defaulting to the onAddScreenshot callback
155
157
const { onAddScreenshot } = { ...defaultConfiguration , ...this . props } ;
156
158
onAddScreenshot ( ( filename : string , attachement : Uint8Array ) => {
157
- this . setState ( { filename, attachment : attachement } ) ;
159
+ // TODO: Add support for image uri when using onAddScreenshot
160
+ this . setState ( { filename, attachment : attachement , attachmentUri : undefined } ) ;
158
161
} ) ;
159
162
}
160
163
} else {
161
- this . setState ( { filename : undefined , attachment : undefined } ) ;
164
+ this . setState ( { filename : undefined , attachment : undefined , attachmentUri : undefined } ) ;
162
165
}
163
166
}
164
167
@@ -256,13 +259,21 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
256
259
multiline
257
260
/>
258
261
{ ( config . enableScreenshot || imagePickerConfiguration . imagePicker ) && (
259
- < TouchableOpacity style = { styles . screenshotButton } onPress = { this . onScreenshotButtonPress } >
260
- < Text style = { styles . screenshotText } >
261
- { ! this . state . filename && ! this . state . attachment
262
- ? text . addScreenshotButtonLabel
263
- : text . removeScreenshotButtonLabel }
264
- </ Text >
265
- </ TouchableOpacity >
262
+ < View style = { styles . screenshotContainer } >
263
+ { this . state . attachmentUri && (
264
+ < Image
265
+ source = { { uri : this . state . attachmentUri } }
266
+ style = { styles . screenshotThumbnail }
267
+ />
268
+ ) }
269
+ < TouchableOpacity style = { styles . screenshotButton } onPress = { this . onScreenshotButtonPress } >
270
+ < Text style = { styles . screenshotText } >
271
+ { ! this . state . filename && ! this . state . attachment
272
+ ? text . addScreenshotButtonLabel
273
+ : text . removeScreenshotButtonLabel }
274
+ </ Text >
275
+ </ TouchableOpacity >
276
+ </ View >
266
277
) }
267
278
< TouchableOpacity style = { styles . submitButton } onPress = { this . handleFeedbackSubmit } >
268
279
< Text style = { styles . submitText } > { text . submitButtonLabel } </ Text >
@@ -290,6 +301,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
290
301
description : '' ,
291
302
filename : undefined ,
292
303
attachment : undefined ,
304
+ attachmentUri : undefined ,
293
305
} ;
294
306
} ;
295
307
}
0 commit comments