Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(3.1) Implements Report a Bug button #4378

Open
wants to merge 17 commits into
base: antonis/3859-newCaptureFeedbackAPI-Form
Choose a base branch
from

Conversation

antonis
Copy link
Collaborator

@antonis antonis commented Dec 16, 2024

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

Depends on: #4370

📜 Description

Implements feedback button that launches the feedback form using the auto-injected feedback widget

💡 Motivation and Context

Fixes #4369

💚 How did you test it?

Manual testing with the sample app

📝 Checklist

  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

🔮 Next steps

#skip-changelog

…358-Feedback-Form-Autoinject

# Conflicts:
#	CHANGELOG.md
…358-Feedback-Form-Autoinject

# Conflicts:
#	packages/core/src/js/feedback/FeedbackForm.tsx
@antonis antonis linked an issue Dec 16, 2024 that may be closed by this pull request
Copy link
Contributor

github-actions bot commented Dec 16, 2024

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 440.81 ms 441.06 ms 0.25 ms
Size 17.74 MiB 20.10 MiB 2.37 MiB

Baseline results on branch: antonis/3859-newCaptureFeedbackAPI-Form

Startup times

Revision Plain With Sentry Diff
561640f 461.96 ms 458.11 ms -3.85 ms
50c70c0 496.82 ms 526.02 ms 29.20 ms
38a278b 473.58 ms 468.76 ms -4.82 ms
db1844e 475.35 ms 460.66 ms -14.69 ms
27e1bf3 463.19 ms 478.80 ms 15.61 ms
d33790a 442.93 ms 439.94 ms -3.00 ms
cadf235 462.20 ms 463.34 ms 1.14 ms
1dd8d17 399.65 ms 393.81 ms -5.84 ms
0781f75 452.32 ms 457.22 ms 4.91 ms
a3ba405 438.16 ms 435.78 ms -2.38 ms

App size

Revision Plain With Sentry Diff
561640f 17.74 MiB 20.09 MiB 2.35 MiB
50c70c0 17.74 MiB 20.10 MiB 2.36 MiB
38a278b 17.74 MiB 20.10 MiB 2.37 MiB
db1844e 17.74 MiB 20.10 MiB 2.37 MiB
27e1bf3 17.74 MiB 20.09 MiB 2.35 MiB
d33790a 17.74 MiB 20.10 MiB 2.36 MiB
cadf235 17.74 MiB 20.09 MiB 2.35 MiB
1dd8d17 17.74 MiB 20.10 MiB 2.36 MiB
0781f75 17.74 MiB 20.09 MiB 2.35 MiB
a3ba405 17.74 MiB 20.09 MiB 2.35 MiB

Previous results on branch: antonis/4358-Feedback-Form-Autoinject-Button

Startup times

Revision Plain With Sentry Diff
36c9278 462.35 ms 443.98 ms -18.37 ms
6a56df9 421.08 ms 410.56 ms -10.52 ms
2617630 682.84 ms 696.87 ms 14.03 ms
6b05100 459.60 ms 442.80 ms -16.80 ms

App size

Revision Plain With Sentry Diff
36c9278 17.74 MiB 20.10 MiB 2.37 MiB
6a56df9 17.74 MiB 20.11 MiB 2.37 MiB
2617630 17.74 MiB 20.10 MiB 2.37 MiB
6b05100 17.74 MiB 20.11 MiB 2.37 MiB

@antonis antonis marked this pull request as ready for review December 16, 2024 12:20
Copy link
Contributor

github-actions bot commented Dec 16, 2024

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 368.44 ms 411.94 ms 43.50 ms
Size 7.15 MiB 8.38 MiB 1.23 MiB

Baseline results on branch: antonis/3859-newCaptureFeedbackAPI-Form

Startup times

Revision Plain With Sentry Diff
27e1bf3+dirty 398.69 ms 439.39 ms 40.69 ms
561640f+dirty 378.73 ms 442.25 ms 63.52 ms
03c9048+dirty 397.35 ms 417.73 ms 20.37 ms
f4a5053+dirty 391.02 ms 427.04 ms 36.02 ms
db1844e+dirty 376.33 ms 428.67 ms 52.34 ms
1dd8d17+dirty 383.20 ms 432.62 ms 49.41 ms
50c70c0+dirty 385.30 ms 433.06 ms 47.76 ms
d33790a+dirty 404.87 ms 473.06 ms 68.19 ms
a3ba405+dirty 359.67 ms 436.86 ms 77.19 ms
cadf235+dirty 455.51 ms 451.64 ms -3.87 ms

App size

Revision Plain With Sentry Diff
27e1bf3+dirty 7.15 MiB 8.37 MiB 1.22 MiB
561640f+dirty 7.15 MiB 8.37 MiB 1.22 MiB
03c9048+dirty 7.15 MiB 8.38 MiB 1.23 MiB
f4a5053+dirty 7.15 MiB 8.38 MiB 1.23 MiB
db1844e+dirty 7.15 MiB 8.38 MiB 1.23 MiB
1dd8d17+dirty 7.15 MiB 8.38 MiB 1.23 MiB
50c70c0+dirty 7.15 MiB 8.38 MiB 1.23 MiB
d33790a+dirty 7.15 MiB 8.38 MiB 1.23 MiB
a3ba405+dirty 7.15 MiB 8.37 MiB 1.22 MiB
cadf235+dirty 7.15 MiB 8.37 MiB 1.22 MiB

Previous results on branch: antonis/4358-Feedback-Form-Autoinject-Button

Startup times

Revision Plain With Sentry Diff
6b05100+dirty 390.82 ms 408.63 ms 17.81 ms
36c9278+dirty 405.02 ms 463.18 ms 58.16 ms
6a56df9+dirty 384.17 ms 404.35 ms 20.18 ms
2617630+dirty 420.53 ms 447.40 ms 26.87 ms

App size

Revision Plain With Sentry Diff
6b05100+dirty 7.15 MiB 8.38 MiB 1.24 MiB
36c9278+dirty 7.15 MiB 8.38 MiB 1.23 MiB
6a56df9+dirty 7.15 MiB 8.39 MiB 1.24 MiB
2617630+dirty 7.15 MiB 8.38 MiB 1.23 MiB

Copy link
Contributor

github-actions bot commented Dec 16, 2024

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1231.33 ms 1239.48 ms 8.15 ms
Size 2.36 MiB 3.13 MiB 785.30 KiB

Baseline results on branch: antonis/3859-newCaptureFeedbackAPI-Form

Startup times

Revision Plain With Sentry Diff
a06f6ba+dirty 1230.45 ms 1227.09 ms -3.36 ms
1dd8d17+dirty 1235.22 ms 1218.96 ms -16.27 ms
0781f75+dirty 1222.19 ms 1222.11 ms -0.08 ms
cadf235+dirty 1223.89 ms 1236.22 ms 12.33 ms
38a278b+dirty 1233.02 ms 1233.82 ms 0.80 ms
a3ba405+dirty 1223.00 ms 1219.06 ms -3.94 ms
db1844e+dirty 1230.79 ms 1234.22 ms 3.43 ms
e0624b6+dirty 1221.86 ms 1226.42 ms 4.57 ms
26fc306+dirty 1227.25 ms 1225.85 ms -1.40 ms
50c70c0+dirty 1228.06 ms 1224.43 ms -3.64 ms

App size

Revision Plain With Sentry Diff
a06f6ba+dirty 2.36 MiB 3.11 MiB 761.35 KiB
1dd8d17+dirty 2.36 MiB 3.11 MiB 761.66 KiB
0781f75+dirty 2.36 MiB 3.11 MiB 761.35 KiB
cadf235+dirty 2.36 MiB 3.11 MiB 761.47 KiB
38a278b+dirty 2.36 MiB 3.13 MiB 782.12 KiB
a3ba405+dirty 2.36 MiB 3.11 MiB 760.99 KiB
db1844e+dirty 2.36 MiB 3.13 MiB 782.13 KiB
e0624b6+dirty 2.36 MiB 3.11 MiB 761.16 KiB
26fc306+dirty 2.36 MiB 3.11 MiB 761.18 KiB
50c70c0+dirty 2.36 MiB 3.11 MiB 760.92 KiB

Previous results on branch: antonis/4358-Feedback-Form-Autoinject-Button

Startup times

Revision Plain With Sentry Diff
6b05100+dirty 1242.04 ms 1241.65 ms -0.39 ms
2617630+dirty 1232.52 ms 1240.78 ms 8.26 ms
36c9278+dirty 1227.37 ms 1229.80 ms 2.43 ms
6a56df9+dirty 1227.91 ms 1218.66 ms -9.26 ms

App size

Revision Plain With Sentry Diff
6b05100+dirty 2.36 MiB 3.12 MiB 770.21 KiB
2617630+dirty 2.36 MiB 3.13 MiB 783.21 KiB
36c9278+dirty 2.36 MiB 3.13 MiB 784.69 KiB
6a56df9+dirty 2.36 MiB 3.12 MiB 770.81 KiB

Copy link
Contributor

github-actions bot commented Dec 16, 2024

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1246.69 ms 1236.98 ms -9.71 ms
Size 2.92 MiB 3.70 MiB 796.49 KiB

Baseline results on branch: antonis/3859-newCaptureFeedbackAPI-Form

Startup times

Revision Plain With Sentry Diff
a06f6ba+dirty 1235.31 ms 1238.76 ms 3.45 ms
1dd8d17+dirty 1229.28 ms 1224.92 ms -4.36 ms
0781f75+dirty 1247.90 ms 1237.11 ms -10.79 ms
cadf235+dirty 1225.19 ms 1231.65 ms 6.47 ms
38a278b+dirty 1247.80 ms 1244.61 ms -3.18 ms
a3ba405+dirty 1229.31 ms 1228.16 ms -1.14 ms
db1844e+dirty 1231.94 ms 1238.86 ms 6.92 ms
e0624b6+dirty 1229.19 ms 1232.18 ms 3.00 ms
26fc306+dirty 1229.10 ms 1227.88 ms -1.22 ms
50c70c0+dirty 1226.61 ms 1225.02 ms -1.59 ms

App size

Revision Plain With Sentry Diff
a06f6ba+dirty 2.92 MiB 3.67 MiB 773.87 KiB
1dd8d17+dirty 2.92 MiB 3.67 MiB 774.21 KiB
0781f75+dirty 2.92 MiB 3.67 MiB 773.83 KiB
cadf235+dirty 2.92 MiB 3.67 MiB 773.97 KiB
38a278b+dirty 2.92 MiB 3.69 MiB 793.49 KiB
a3ba405+dirty 2.92 MiB 3.67 MiB 773.65 KiB
db1844e+dirty 2.92 MiB 3.69 MiB 793.48 KiB
e0624b6+dirty 2.92 MiB 3.67 MiB 773.62 KiB
26fc306+dirty 2.92 MiB 3.67 MiB 773.77 KiB
50c70c0+dirty 2.92 MiB 3.67 MiB 773.48 KiB

Previous results on branch: antonis/4358-Feedback-Form-Autoinject-Button

Startup times

Revision Plain With Sentry Diff
6b05100+dirty 1245.56 ms 1240.36 ms -5.20 ms
2617630+dirty 1236.02 ms 1243.86 ms 7.84 ms
36c9278+dirty 1238.84 ms 1239.52 ms 0.68 ms
6a56df9+dirty 1231.62 ms 1244.02 ms 12.40 ms

App size

Revision Plain With Sentry Diff
6b05100+dirty 2.92 MiB 3.68 MiB 782.77 KiB
2617630+dirty 2.92 MiB 3.69 MiB 794.45 KiB
36c9278+dirty 2.92 MiB 3.70 MiB 796.02 KiB
6a56df9+dirty 2.92 MiB 3.68 MiB 783.36 KiB

…8-Feedback-Form-Autoinject-Button

# Conflicts:
#	CHANGELOG.md
…358-Feedback-Form-Autoinject

# Conflicts:
#	packages/core/src/js/feedback/FeedbackForm.tsx
@@ -248,6 +248,7 @@ const ErrorsScreen = (_props: Props) => {
) : null}
<View style={styles.mainViewBottomWhiteSpace} />
</ScrollView>
<FeedbackButton navigation={_props.navigation} />
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i: this button should hide itself once feedback is sent.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the suggestion @lucas-zimerman 🙇
If we hide the button how can be set visible again so that the user provide another feedback?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The decision to show or hide the feedback button should be left to the end user. To enable this, users should be informed when feedback has been sent/ignored, allowing them to decide whether the feedback button should reappear.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point @lucas-zimerman 👍

I think this should be feasible with the onFormClose and onFormSubmitted callbacks.
Do you think we should extend the sample to showcase this (probably on a separate PR)?

this button should hide itself once feedback is sent.

Probably I'm wrong on this but as a user I would expect the button to remain always visible given that it is not necessarily linked with a crash/error report. E.g. if the developer places the button on a secondary screen of the app the user would always find it there for a consistent experience.

Copy link
Collaborator

@lucas-zimerman lucas-zimerman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, the PR looks good! I only have some nits before we can merge it.

Base automatically changed from antonis/4358-Feedback-Form-Autoinject to antonis/3859-newCaptureFeedbackAPI-Form December 19, 2024 08:29
…358-Feedback-Form-Autoinject-Button

# Conflicts:
#	packages/core/src/js/feedback/FeedbackForm.styles.ts
#	packages/core/src/js/feedback/FeedbackForm.types.ts
#	packages/core/src/js/index.ts
#	samples/react-native/src/Screens/ErrorsScreen.tsx
…358-Feedback-Form-Autoinject-Button

# Conflicts:
#	CHANGELOG.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feedback Form: Implement Report a Bug button
2 participants