-
-
Notifications
You must be signed in to change notification settings - Fork 342
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
Autoinject feedback widget #4483
Conversation
Android (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
e5d5735 | 452.70 ms | 453.04 ms | 0.34 ms |
0459aee | 491.48 ms | 486.13 ms | -5.35 ms |
2646c98 | 429.98 ms | 421.63 ms | -8.35 ms |
3e4cdf5 | 462.35 ms | 474.96 ms | 12.61 ms |
0325426 | 477.32 ms | 457.43 ms | -19.89 ms |
269c976 | 448.08 ms | 428.86 ms | -19.22 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
e5d5735 | 17.75 MiB | 20.12 MiB | 2.37 MiB |
0459aee | 17.75 MiB | 20.12 MiB | 2.37 MiB |
2646c98 | 17.75 MiB | 20.12 MiB | 2.37 MiB |
3e4cdf5 | 17.75 MiB | 20.12 MiB | 2.37 MiB |
0325426 | 17.75 MiB | 20.12 MiB | 2.37 MiB |
269c976 | 17.75 MiB | 20.12 MiB | 2.37 MiB |
iOS (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
2646c98+dirty | 1218.51 ms | 1218.92 ms | 0.41 ms |
3e4cdf5+dirty | 1222.53 ms | 1224.42 ms | 1.89 ms |
e5d5735+dirty | 1222.02 ms | 1222.22 ms | 0.20 ms |
269c976+dirty | 1210.02 ms | 1204.46 ms | -5.56 ms |
0325426+dirty | 1228.88 ms | 1229.92 ms | 1.04 ms |
0459aee+dirty | 1232.82 ms | 1231.19 ms | -1.63 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
2646c98+dirty | 2.63 MiB | 3.69 MiB | 1.06 MiB |
3e4cdf5+dirty | 2.63 MiB | 3.69 MiB | 1.06 MiB |
e5d5735+dirty | 2.63 MiB | 3.69 MiB | 1.06 MiB |
269c976+dirty | 2.63 MiB | 3.69 MiB | 1.06 MiB |
0325426+dirty | 2.63 MiB | 3.69 MiB | 1.06 MiB |
0459aee+dirty | 2.63 MiB | 3.69 MiB | 1.06 MiB |
Android (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
269c976+dirty | 395.13 ms | 438.37 ms | 43.24 ms |
e5d5735+dirty | 377.37 ms | 430.04 ms | 52.67 ms |
0325426+dirty | 418.89 ms | 485.00 ms | 66.11 ms |
0459aee+dirty | 424.10 ms | 466.63 ms | 42.53 ms |
3e4cdf5+dirty | 642.13 ms | 702.23 ms | 60.10 ms |
2646c98+dirty | 415.13 ms | 438.41 ms | 23.28 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
269c976+dirty | 7.15 MiB | 8.39 MiB | 1.23 MiB |
e5d5735+dirty | 7.15 MiB | 8.39 MiB | 1.23 MiB |
0325426+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
0459aee+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
3e4cdf5+dirty | 7.15 MiB | 8.39 MiB | 1.23 MiB |
2646c98+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
iOS (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
269c976+dirty | 1223.29 ms | 1222.90 ms | -0.39 ms |
0459aee+dirty | 1233.67 ms | 1239.80 ms | 6.12 ms |
0325426+dirty | 1210.17 ms | 1216.37 ms | 6.20 ms |
2646c98+dirty | 1239.94 ms | 1246.90 ms | 6.96 ms |
e5d5735+dirty | 1217.78 ms | 1221.80 ms | 4.02 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
269c976+dirty | 3.19 MiB | 4.26 MiB | 1.07 MiB |
0459aee+dirty | 3.19 MiB | 4.26 MiB | 1.07 MiB |
0325426+dirty | 3.19 MiB | 4.26 MiB | 1.07 MiB |
2646c98+dirty | 3.19 MiB | 4.26 MiB | 1.07 MiB |
e5d5735+dirty | 3.19 MiB | 4.26 MiB | 1.07 MiB |
I know this is still a draft, but after the modal is working let's add a test for the public function to ensure calling it displays the form when provider is used and doesn't throw error when provider is not used. |
We should also enable users to change the forms options/props. Similar to JS setting them in the integration options |
Modal is implemented in the legacy architecture for all versions the SDK supports. But for new architecture only for RN 0.71 and up -> facebook/react-native#33652 (comment) I think we could print error when we notice RN 0.70 and older and Fabric renderer (new arch). I'm also adding this comment so we include this information in the docs. |
Thank you for bringing this to my attention @krystofwoldrich 🙇
I've added a check with 84108f1 |
Thank you for your help and feedback @krystofwoldrich 🙇
Added tests with f4df57c
Makes sense 👍 I'll follow up with a separate PR for this. |
There was a problem hiding this 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! Added a few suggestions but they are non-blocking
Co-authored-by: LucasZF <[email protected]>
Co-authored-by: LucasZF <[email protected]>
|
||
describe('FeedbackFormManager', () => { | ||
it('showFeedbackForm displays the form when FeedbackFormProvider is used', () => { | ||
require('../../src/js/feedback/utils').isModalSupported.mockReturnValue(true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
l: import { isModalSupported } from ''../../src/js/feedback/utils'';
and then (isModalSupported as jest.MockedFunction<typeof isModalSupported>)
should also work and it will be typesafe.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea Krystof 👍
Updated with d8ab914
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you. Looks good.
I left one small TS improvement comment in the test file.
📢 Type of change
📜 Description
Adds
Sentry.showFeedbackForm()
method that presents the feedback form in aModal
.💡 Motivation and Context
Part of #4302
💚 How did you test it?
Manual, CI
📝 Checklist
sendDefaultPII
is enabled🔮 Next steps
#skip-changelog