@@ -39,6 +39,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
3939 description : '' ,
4040 filename : undefined ,
4141 attachment : undefined ,
42+ attachmentUri : undefined ,
4243 } ;
4344
4445 private _didSubmitForm : boolean = false ;
@@ -60,6 +61,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
6061 description : FeedbackWidget . _savedState . description || '' ,
6162 filename : FeedbackWidget . _savedState . filename || undefined ,
6263 attachment : FeedbackWidget . _savedState . attachment || undefined ,
64+ attachmentUri : FeedbackWidget . _savedState . attachmentUri || undefined ,
6365 } ;
6466 }
6567
@@ -144,24 +146,25 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
144146 const imageUri = result . assets [ 0 ] . uri ;
145147 NATIVE . getDataFromUri ( imageUri ) . then ( ( data ) => {
146148 if ( data != null ) {
147- this . setState ( { filename, attachment : data } ) ;
149+ this . setState ( { filename, attachment : data , attachmentUri : imageUri } ) ;
148150 } else {
149151 logger . error ( 'Failed to read image data from uri:' , imageUri ) ;
150152 }
151153 } )
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+ } ) ;
155157 }
156158 } else {
157159 // Defaulting to the onAddScreenshot callback
158160 const { onAddScreenshot } = { ...defaultConfiguration , ...this . props } ;
159161 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 } ) ;
161164 } ) ;
162165 }
163166 } else {
164- this . setState ( { filename : undefined , attachment : undefined } ) ;
167+ this . setState ( { filename : undefined , attachment : undefined , attachmentUri : undefined } ) ;
165168 }
166169 }
167170
@@ -262,13 +265,21 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
262265 multiline
263266 />
264267 { ( 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 >
272283 ) }
273284 < TouchableOpacity style = { styles . submitButton } onPress = { this . handleFeedbackSubmit } >
274285 < Text style = { styles . submitText } > { text . submitButtonLabel } </ Text >
@@ -296,6 +307,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
296307 description : '' ,
297308 filename : undefined ,
298309 attachment : undefined ,
310+ attachmentUri : undefined ,
299311 } ;
300312 } ;
301313}
0 commit comments