Skip to content

Commit 53e13fc

Browse files
feat(feedback): Use only image uri in the onAddScreenshot callback (#4546)
* Save form state for unsubmitted data * Show selected screenshot * Use image uri instead of UInt8Array in onAddScreenshot callback * Omit isVisible from state * Save/clear form state on unmount * Pass the missing attachment parameter in the onSubmitSuccess * Use only the uri parameter for the onAddScreenshot callback * Use instance variable for _didSubmitForm * Fixed callback function parameter name for clarity Co-authored-by: Krystof Woldrich <[email protected]> * Fixes lint issue --------- Co-authored-by: Krystof Woldrich <[email protected]>
1 parent b3ea2b2 commit 53e13fc

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

packages/core/src/js/feedback/FeedbackWidget.tsx

+11-3
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,17 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
158158
} else {
159159
// Defaulting to the onAddScreenshot callback
160160
const { onAddScreenshot } = { ...defaultConfiguration, ...this.props };
161-
onAddScreenshot((filename: string, attachement: Uint8Array) => {
162-
// TODO: Add support for image uri when using onAddScreenshot
163-
this.setState({ filename, attachment: attachement, attachmentUri: undefined });
161+
onAddScreenshot((uri: string) => {
162+
NATIVE.getDataFromUri(uri).then((data) => {
163+
if (data != null) {
164+
this.setState({ filename: 'feedback_screenshot', attachment: data, attachmentUri: uri });
165+
} else {
166+
logger.error('Failed to read image data from uri:', uri);
167+
}
168+
})
169+
.catch((error) => {
170+
logger.error('Failed to read image data from uri:', uri, 'error: ', error);
171+
});
164172
});
165173
}
166174
} else {

packages/core/src/js/feedback/FeedbackWidget.types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export interface FeedbackCallbacks {
171171
/**
172172
* Callback when a screenshot is added
173173
*/
174-
onAddScreenshot?: (attachFile: (filename: string, data: Uint8Array) => void) => void;
174+
onAddScreenshot?: (addScreenshot: (uri: string) => void) => void;
175175

176176
/**
177177
* Callback when feedback is successfully submitted

packages/core/src/js/feedback/defaults.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export const defaultConfiguration: Partial<FeedbackWidgetProps> = {
3333
);
3434
}
3535
},
36-
onAddScreenshot: (_: (filename: string, data: Uint8Array) => void) => {
36+
onAddScreenshot: (_: (uri: string) => void) => {
3737
if (__DEV__) {
3838
Alert.alert('Development note', 'onAddScreenshot callback is not implemented.');
3939
}

0 commit comments

Comments
 (0)