feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: Feedback Widget Beta for React Native - #4435

Merged
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui
Feb 21, 2025
Merged

feat: Feedback Widget Beta for React Native#4435
krystofwoldrich merged 37 commits into
mainfrom
feedback-ui

Conversation

@antonis

@antonisantonis commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Revert "Autoinject feedback form (#4370)"
This reverts commit da0e3ea.
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor
Messages
📖Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 76f708d

@antonisantonis mentioned this pull request Jan 10, 2025
10 tasks
@antonisantonis changed the title Feedback Widget for React Nativefeat: Feedback Widget for React NativeJan 10, 2025
@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time431.16 ms415.96 ms-15.20 ms
Size17.75 MiB20.12 MiB2.37 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
9dabcce485.63 ms483.54 ms-2.09 ms
ad6c299375.94 ms382.02 ms6.08 ms
0ebca77414.93 ms444.49 ms29.56 ms
05b43ab438.67 ms496.19 ms57.52 ms
70caa60+dirty299.00 ms321.02 ms22.02 ms
9282172486.12 ms467.70 ms-18.42 ms
7bc4d75488.76 ms473.28 ms-15.48 ms
13f280b486.16 ms472.45 ms-13.71 ms
1faf8e3449.18 ms432.08 ms-17.10 ms
15c80ab+dirty336.27 ms350.58 ms14.31 ms

App size

RevisionPlainWith SentryDiff
9dabcce17.74 MiB20.09 MiB2.36 MiB
ad6c29917.73 MiB19.75 MiB2.02 MiB
0ebca7717.73 MiB19.95 MiB2.21 MiB
05b43ab17.75 MiB20.11 MiB2.36 MiB
70caa60+dirty17.73 MiB19.75 MiB2.01 MiB
928217217.74 MiB20.09 MiB2.35 MiB
7bc4d7517.74 MiB20.08 MiB2.34 MiB
13f280b17.74 MiB20.08 MiB2.34 MiB
1faf8e317.74 MiB20.08 MiB2.34 MiB
15c80ab+dirty17.73 MiB20.04 MiB2.31 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
df05370477.62 ms491.63 ms14.00 ms
b74349e406.08 ms400.88 ms-5.20 ms
bc11245435.30 ms421.73 ms-13.58 ms
cebae56334.43 ms353.88 ms19.45 ms
9402883448.53 ms468.73 ms20.20 ms
e5d5735452.70 ms453.04 ms0.34 ms
0459aee491.48 ms486.13 ms-5.35 ms
77e88fc478.48 ms487.21 ms8.73 ms
6b1624f462.78 ms465.13 ms2.35 ms
0325426477.32 ms457.43 ms-19.89 ms

App size

RevisionPlainWith SentryDiff
df0537017.75 MiB20.12 MiB2.37 MiB
b74349e17.75 MiB20.12 MiB2.38 MiB
bc1124517.75 MiB20.12 MiB2.38 MiB
cebae5617.75 MiB20.12 MiB2.38 MiB
940288317.75 MiB20.12 MiB2.37 MiB
e5d573517.75 MiB20.12 MiB2.37 MiB
0459aee17.75 MiB20.12 MiB2.37 MiB
77e88fc17.75 MiB20.12 MiB2.37 MiB
6b1624f17.75 MiB20.12 MiB2.37 MiB
032542617.75 MiB20.12 MiB2.37 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time411.73 ms429.90 ms18.16 ms
Size7.15 MiB8.39 MiB1.23 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5fe8312+dirty389.98 ms421.46 ms31.48 ms
52a8031+dirty330.72 ms358.76 ms28.03 ms
cdf2bdf+dirty391.69 ms461.14 ms69.45 ms
9c48b2c+dirty270.82 ms321.12 ms50.30 ms
0677344+dirty288.40 ms391.44 ms103.04 ms
83f6f6c+dirty442.82 ms487.48 ms44.66 ms
c6f01ea+dirty379.95 ms439.35 ms59.40 ms
488c9c5+dirty448.98 ms531.62 ms82.64 ms
c398f67+dirty315.08 ms345.60 ms30.52 ms
690220d+dirty492.10 ms473.88 ms-18.23 ms

App size

RevisionPlainWith SentryDiff
5fe8312+dirty7.15 MiB8.38 MiB1.23 MiB
52a8031+dirty7.15 MiB8.09 MiB965.95 KiB
cdf2bdf+dirty7.15 MiB8.38 MiB1.23 MiB
9c48b2c+dirty7.15 MiB8.07 MiB947.16 KiB
0677344+dirty7.15 MiB8.07 MiB949.80 KiB
83f6f6c+dirty7.15 MiB8.37 MiB1.22 MiB
c6f01ea+dirty7.15 MiB8.37 MiB1.22 MiB
488c9c5+dirty7.15 MiB8.38 MiB1.23 MiB
c398f67+dirty7.15 MiB8.21 MiB1.07 MiB
690220d+dirty7.15 MiB8.36 MiB1.21 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
8cb898b+dirty393.33 ms416.20 ms22.87 ms
894ebb0+dirty417.81 ms499.74 ms81.93 ms
6b1624f+dirty382.17 ms441.00 ms58.83 ms
cebae56+dirty353.30 ms344.79 ms-8.51 ms
77e88fc+dirty358.67 ms346.20 ms-12.47 ms
0459aee+dirty424.10 ms466.63 ms42.53 ms
e5d5735+dirty377.37 ms430.04 ms52.67 ms
9402883+dirty436.49 ms518.94 ms82.45 ms
0325426+dirty418.89 ms485.00 ms66.11 ms
d1a10a1+dirty364.43 ms362.98 ms-1.45 ms

App size

RevisionPlainWith SentryDiff
8cb898b+dirty7.15 MiB8.39 MiB1.24 MiB
894ebb0+dirty7.15 MiB8.39 MiB1.23 MiB
6b1624f+dirty7.15 MiB8.39 MiB1.23 MiB
cebae56+dirty7.15 MiB8.39 MiB1.24 MiB
77e88fc+dirty7.15 MiB8.39 MiB1.24 MiB
0459aee+dirty7.15 MiB8.38 MiB1.23 MiB
e5d5735+dirty7.15 MiB8.39 MiB1.23 MiB
9402883+dirty7.15 MiB8.39 MiB1.23 MiB
0325426+dirty7.15 MiB8.38 MiB1.23 MiB
d1a10a1+dirty7.15 MiB8.39 MiB1.24 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

PlainWith SentryDiff
Startup time1227.71 ms1237.45 ms9.73 ms
Size2.63 MiB3.75 MiB1.12 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
5446992+dirty1273.28 ms1276.68 ms3.40 ms
8ab11b6+dirty1203.23 ms1206.02 ms2.79 ms
8b86336+dirty1219.38 ms1230.73 ms11.36 ms
1c9e040+dirty1226.02 ms1221.06 ms-4.96 ms
83f6f6c+dirty1218.33 ms1220.27 ms1.93 ms
5bb8d5f+dirty1235.47 ms1237.39 ms1.92 ms
7e87527+dirty1209.85 ms1216.31 ms6.46 ms
80b2ce3+dirty1265.92 ms1268.60 ms2.69 ms
9672577+dirty1230.46 ms1237.43 ms6.97 ms
6a667d6+dirty1209.23 ms1210.85 ms1.62 ms

App size

RevisionPlainWith SentryDiff
5446992+dirty2.36 MiB2.88 MiB531.94 KiB
8ab11b6+dirty2.36 MiB3.11 MiB759.83 KiB
8b86336+dirty2.63 MiB3.68 MiB1.05 MiB
1c9e040+dirty2.63 MiB3.69 MiB1.06 MiB
83f6f6c+dirty2.36 MiB3.10 MiB759.79 KiB
5bb8d5f+dirty2.36 MiB2.92 MiB570.22 KiB
7e87527+dirty2.63 MiB3.69 MiB1.05 MiB
80b2ce3+dirty2.36 MiB2.84 MiB486.98 KiB
9672577+dirty2.63 MiB3.70 MiB1.06 MiB
6a667d6+dirty2.63 MiB3.70 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1232.82 ms1231.19 ms-1.63 ms
d1a10a1+dirty1223.68 ms1230.31 ms6.63 ms
e42816c+dirty1211.29 ms1219.65 ms8.37 ms
0325426+dirty1228.88 ms1229.92 ms1.04 ms
b74349e+dirty1206.13 ms1221.65 ms15.53 ms
e5d5735+dirty1222.02 ms1222.22 ms0.20 ms
3e4cdf5+dirty1222.53 ms1224.42 ms1.89 ms
6b1624f+dirty1224.65 ms1225.65 ms1.00 ms
bc11245+dirty1220.78 ms1225.65 ms4.88 ms
9402883+dirty1219.65 ms1217.94 ms-1.72 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty2.63 MiB3.69 MiB1.06 MiB
d1a10a1+dirty2.63 MiB3.75 MiB1.12 MiB
e42816c+dirty2.63 MiB3.75 MiB1.12 MiB
0325426+dirty2.63 MiB3.69 MiB1.06 MiB
b74349e+dirty2.63 MiB3.76 MiB1.12 MiB
e5d5735+dirty2.63 MiB3.69 MiB1.06 MiB
3e4cdf5+dirty2.63 MiB3.69 MiB1.06 MiB
6b1624f+dirty2.63 MiB3.71 MiB1.07 MiB
bc11245+dirty2.63 MiB3.76 MiB1.12 MiB
9402883+dirty2.63 MiB3.71 MiB1.07 MiB

@github-actions

github-actionsBot commented Jan 10, 2025

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

PlainWith SentryDiff
Startup time1216.85 ms1221.77 ms4.91 ms
Size3.19 MiB4.32 MiB1.13 MiB

Baseline results on branch: main

Startup times

RevisionPlainWith SentryDiff
4161236+dirty1245.33 ms1245.63 ms0.30 ms
8fe7c9d+dirty1227.63 ms1245.28 ms17.65 ms
dadc233+dirty1266.52 ms1282.55 ms16.03 ms
5f03ae9+dirty1237.79 ms1241.02 ms3.23 ms
a38594f+dirty1226.24 ms1225.42 ms-0.83 ms
1e28462+dirty1214.71 ms1214.04 ms-0.67 ms
ad6c299+dirty1248.50 ms1248.88 ms0.38 ms
7fd512a+dirty1239.41 ms1241.50 ms2.09 ms
484813b+dirty1225.07 ms1221.00 ms-4.07 ms
8d251c2+dirty1221.19 ms1227.12 ms5.93 ms

App size

RevisionPlainWith SentryDiff
4161236+dirty3.19 MiB4.25 MiB1.06 MiB
8fe7c9d+dirty3.19 MiB4.24 MiB1.06 MiB
dadc233+dirty2.92 MiB3.40 MiB492.53 KiB
5f03ae9+dirty3.19 MiB4.25 MiB1.06 MiB
a38594f+dirty3.19 MiB4.25 MiB1.06 MiB
1e28462+dirty3.19 MiB4.31 MiB1.12 MiB
ad6c299+dirty2.92 MiB3.40 MiB494.12 KiB
7fd512a+dirty2.92 MiB3.66 MiB758.62 KiB
484813b+dirty2.92 MiB3.64 MiB740.56 KiB
8d251c2+dirty3.19 MiB4.25 MiB1.06 MiB

Previous results on branch: feedback-ui

Startup times

RevisionPlainWith SentryDiff
0459aee+dirty1233.67 ms1239.80 ms6.12 ms
d1a10a1+dirty1228.56 ms1229.79 ms1.23 ms
e42816c+dirty1220.08 ms1222.46 ms2.38 ms
0325426+dirty1210.17 ms1216.37 ms6.20 ms
b74349e+dirty1214.22 ms1225.07 ms10.84 ms
e5d5735+dirty1217.78 ms1221.80 ms4.02 ms
3e4cdf5+dirty1213.36 ms1221.31 ms7.95 ms
6b1624f+dirty1224.12 ms1220.73 ms-3.39 ms
bc11245+dirty1229.67 ms1224.77 ms-4.90 ms
9402883+dirty1217.71 ms1213.02 ms-4.69 ms

App size

RevisionPlainWith SentryDiff
0459aee+dirty3.19 MiB4.26 MiB1.07 MiB
d1a10a1+dirty3.19 MiB4.32 MiB1.14 MiB
e42816c+dirty3.19 MiB4.32 MiB1.13 MiB
0325426+dirty3.19 MiB4.26 MiB1.07 MiB
b74349e+dirty3.19 MiB4.32 MiB1.14 MiB
e5d5735+dirty3.19 MiB4.26 MiB1.07 MiB
3e4cdf5+dirty3.19 MiB4.26 MiB1.07 MiB
6b1624f+dirty3.19 MiB4.27 MiB1.09 MiB
bc11245+dirty3.19 MiB4.32 MiB1.14 MiB
9402883+dirty3.19 MiB4.27 MiB1.09 MiB

antonisand others added 11 commits January 14, 2025 11:00
* Update the client implementation to use the new capture feedback js api
* Updates SDK API
* Adds new feedback button in the sample
* Adds changelog
* Removes unused mock
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Directly use captureFeedback from sentry/core
* Use import from core
* Fixes imports order lint issue
* Fixes build issue
* Adds captureFeedback tests from sentry-javascript
* Update CHANGELOG.md
* Only deprecate client captureUserFeedback
* Add simple form UI
* Adds basic form functionality
* Update imports
* Update imports
* Remove useState hook to avoid multiple react instances issues
* Move types and styles in different files
* Removes attachment button to be added back separately along with the implementation
* Add basic field validation
* Adds changelog
* Updates changelog
* Updates changelog
* Trim whitespaces from the submitted feedback
* Adds tests
* Adds attachment button UI
* Adds changelog
* Add attachment handling based on the client implementation
* Reduce render method complexity
* Adds test for attachment button visibility
* Format code
* Pick image with react-native-image-picker
* Convert base64 string to Uint8Array before sending
* Updates changelog
* Renames FeedbackFormScreen to FeedbackForm
* Add beta label
* Extract default text to constants
* Moves constant to a separate file and aligns naming with JS
* Adds input text labels
* Close screen before sending the feedback to minimise wait time
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Rename file for consistency
* Flatten configuration hierarchy and clean up
* Align required values with JS
* Use Sentry user email and name when set
* Simplifies email validation
* Show success alert message
* Aligns naming with JS and unmounts the form by default
* Use the minimum config without props in the changelog
* Adds development not for unimplemented function
* Show email and name conditionally
* Adds sentry branding (png logo)
* Adds sentry logo resource
* Add assets in module exports
* Revert "Add assets in module exports"
This reverts commit 5292475.
* Revert "Adds sentry logo resource"
This reverts commit d6e9229.
* Revert "Adds sentry branding (png logo)"
This reverts commit 8c56753.
* Add last event id
* Mock lastEventId
* Remove changelog
* Reverse unrelated change
* Adds beta note in the changelog
* Updates changelog
* Align colors with JS
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use regular fonts for both buttons
* Handle keyboard properly
* Adds an option on whether the email should be validated
* Merge properties only once
* Loads current user data on form construction
* Remove unneeded extra padding
* Fix background color issue
* Fixes changelog typo
* Updates styles background color
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Use defaultProps
* Correct defaultProps
* Adds test to verify when getUser is called
* Add default value in doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Add a more clear doc comment
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* (2.2) feat: Add Feedback Form UI Branding logo (#4357)
* Adds sentry branding logo as a base64 encoded png
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Autoinject feedback form (#4370)
* Align changelog entry
* Update changelog
* Use AddScreenshot naming
* Allow only Uint8Array for screenshots
* Rename callback parameter
* Adds snapshot tests for screenshot button
* Rename screenshot button for clarity
* Use a library to get the Uint8Array
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
# Conflicts:
#	CHANGELOG.md
* Auto-inject feedback form
* Temporarily disable sample rotating indicator
* Revert "Temporarily disable sample rotating indicator"
This reverts commit db407ce.
* Wrap Modal in a View
* Handles Android back button
* Make modal style configurable
* Print an error when the modal is not supported
* Add changelog
* Adds tests
* Get major, minor version with deconstruct declaration
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Remove if condition
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
* Prettier
* Fix test import
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
antonisand others added 2 commits January 30, 2025 11:05
---------
Co-authored-by: LucasZF <lucas-zimerman1@hotmail.com>
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
@antonisantonis mentioned this pull request Jan 30, 2025
10 tasks
antonisand others added 15 commits February 14, 2025 11:00
* Disable bouncing
* Add modal ui appearance
* Update snapshot tests
* Fix bottom margin
* Fix sheet height
* Remove extra modal border
* Do not expose modal styles
* Animate background color
* Avoid keyboard in modal
* Use Image Picker interface matching `expo-image-picker` and `react-native-image-picker`
* Update samples to pass the ImagePicker library implementation
* Get image data from uri
* Add early return and dev note
* Adds tests
* Adds sample expo plugin configuration
* Update media type for expo
* Update media type for rn
* Add native implementation for getDataFromUri
* Bumped to the latest react-native-image-picker version 8
* Add missing null in return type
# Conflicts:
#	CHANGELOG.md
* chore(feedback): Use `Widget` instead of `Form`
* fix
* fix lint
---------
Co-authored-by: Antonis Lilis <antonis.lilis@gmail.com>
* chore(feedback): Improve widget animations
* add comment
* when widget is about to be shown it should not animate slide down
* Save form state for unsubmitted data
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Save form state for unsubmitted data
* Show selected screenshot
* Omit isVisible from state
* Save/clear form state on unmount
* Pass the missing attachment parameter in the onSubmitSuccess
* Use instance variable for _didSubmitForm
* Fixes lint issue
* Fix merge issue
…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 <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
# Conflicts:
#	CHANGELOG.md
* 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
* Handle attachments on the web
* Use window for showing alerts on the web
* Disable keyboard handling on the web
* Use instance variable for _didSubmitForm
* Fixed callback function parameter name for clarity
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Fixes lint issue
* Use RN_GLOBAL_OBJ for web alert
---------
Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com>
* Align secondary buttons with the web
* Update snapshots
@antonis
antonis marked this pull request as ready for review February 21, 2025 07:35
@antonisantonis changed the title feat: Feedback Widget for React Nativefeat: Feedback Widget Beta for React NativeFeb 21, 2025

@krystofwoldrichkrystofwoldrich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All merges into the feature branch were approved individually. So I'm approving this.

@krystofwoldrich
krystofwoldrich merged commit d8992c6 into mainFeb 21, 2025
@krystofwoldrich
krystofwoldrich deleted the feedback-ui branch February 21, 2025 09:36
Sign up for freeto 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.

[EPIC] Feedback Widget for React Native

2 participants

@antonis@krystofwoldrich