Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

(1) feat: Add Feedback Form Component #4328

Open
wants to merge 86 commits into
base: main
Choose a base branch
from

Conversation

antonis
Copy link
Collaborator

@antonis antonis commented Nov 29, 2024

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Adds a basic feedback form with the following fields: name, email, description.
The form text and styles can be customised.

Feedback Form Sample Button Feedback Form iOS Feedback Form Android
Simulator Screenshot - iPhone SE (3rd generation) - 2024-11-29 at 23 16 21 Simulator Screenshot - iPhone SE (3rd generation) - 2024-12-11 at 16 44 55 Screenshot_1733913880

Subtask PRs:

💡 Motivation and Context

Fixes #4336

💚 How did you test it?

CI, Manual testing (example)

📝 Checklist

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

🔮 Next steps

Copy link
Contributor

github-actions bot commented Nov 29, 2024

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 473.58 ms 468.76 ms -4.82 ms
Size 17.74 MiB 20.10 MiB 2.37 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
fe13591 478.92 ms 480.84 ms 1.92 ms
86d6d2c+dirty 332.90 ms 352.45 ms 19.55 ms
9a3ca65+dirty 326.93 ms 330.14 ms 3.21 ms
dadc233+dirty 333.78 ms 343.94 ms 10.16 ms
83f6f6c 418.83 ms 410.94 ms -7.89 ms
52a8031+dirty 311.55 ms 321.37 ms 9.82 ms
b95b8af 454.05 ms 454.53 ms 0.48 ms
43e66e0 373.32 ms 366.57 ms -6.75 ms
0677344 327.74 ms 337.14 ms 9.40 ms
f54118b 441.24 ms 431.92 ms -9.32 ms

App size

Revision Plain With Sentry Diff
fe13591 17.74 MiB 20.07 MiB 2.34 MiB
86d6d2c+dirty 17.73 MiB 20.04 MiB 2.31 MiB
9a3ca65+dirty 17.73 MiB 20.04 MiB 2.31 MiB
dadc233+dirty 17.73 MiB 19.75 MiB 2.02 MiB
83f6f6c 17.74 MiB 20.09 MiB 2.35 MiB
52a8031+dirty 17.73 MiB 20.04 MiB 2.31 MiB
b95b8af 17.73 MiB 20.11 MiB 2.37 MiB
43e66e0 17.74 MiB 20.09 MiB 2.35 MiB
0677344 17.73 MiB 19.81 MiB 2.07 MiB
f54118b 17.74 MiB 20.08 MiB 2.35 MiB

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

Startup times

Revision Plain With Sentry Diff
1dd8d17 399.65 ms 393.81 ms -5.84 ms
03c9048 500.96 ms 486.65 ms -14.31 ms
0781f75 452.32 ms 457.22 ms 4.91 ms
cadf235 462.20 ms 463.34 ms 1.14 ms
f4a5053 478.22 ms 458.35 ms -19.87 ms
27e1bf3 463.19 ms 478.80 ms 15.61 ms
a3ba405 438.16 ms 435.78 ms -2.38 ms
50c70c0 496.82 ms 526.02 ms 29.20 ms
26fc306 426.80 ms 421.58 ms -5.22 ms
d33790a 442.93 ms 439.94 ms -3.00 ms

App size

Revision Plain With Sentry Diff
1dd8d17 17.74 MiB 20.10 MiB 2.36 MiB
03c9048 17.74 MiB 20.10 MiB 2.37 MiB
0781f75 17.74 MiB 20.09 MiB 2.35 MiB
cadf235 17.74 MiB 20.09 MiB 2.35 MiB
f4a5053 17.74 MiB 20.10 MiB 2.36 MiB
27e1bf3 17.74 MiB 20.09 MiB 2.35 MiB
a3ba405 17.74 MiB 20.09 MiB 2.35 MiB
50c70c0 17.74 MiB 20.10 MiB 2.36 MiB
26fc306 17.74 MiB 20.09 MiB 2.35 MiB
d33790a 17.74 MiB 20.10 MiB 2.36 MiB

Copy link
Contributor

github-actions bot commented Nov 29, 2024

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 392.43 ms 442.41 ms 49.97 ms
Size 7.15 MiB 8.38 MiB 1.23 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
d8668ce+dirty 372.43 ms 403.84 ms 31.41 ms
6e8584e+dirty 383.37 ms 400.84 ms 17.47 ms
0db0c72+dirty 335.20 ms 351.06 ms 15.86 ms
77680ec+dirty 393.50 ms 426.68 ms 33.18 ms
205982c+dirty 383.94 ms 424.98 ms 41.04 ms
e73d82f+dirty 377.67 ms 407.06 ms 29.39 ms
8900e1a+dirty 371.40 ms 377.70 ms 6.31 ms
9cab16b+dirty 370.82 ms 416.37 ms 45.55 ms
700cbf4+dirty 411.71 ms 485.52 ms 73.81 ms
d197b5c+dirty 258.75 ms 313.61 ms 54.86 ms

App size

Revision Plain With Sentry Diff
d8668ce+dirty 7.15 MiB 8.35 MiB 1.20 MiB
6e8584e+dirty 7.15 MiB 8.13 MiB 1002.18 KiB
0db0c72+dirty 7.15 MiB 8.04 MiB 911.02 KiB
77680ec+dirty 7.15 MiB 8.35 MiB 1.20 MiB
205982c+dirty 7.15 MiB 8.38 MiB 1.23 MiB
e73d82f+dirty 7.15 MiB 8.34 MiB 1.19 MiB
8900e1a+dirty 7.15 MiB 8.03 MiB 901.79 KiB
9cab16b+dirty 7.15 MiB 8.35 MiB 1.20 MiB
700cbf4+dirty 7.15 MiB 8.34 MiB 1.19 MiB
d197b5c+dirty 7.15 MiB 8.09 MiB 962.72 KiB

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

Startup times

Revision Plain With Sentry Diff
50c70c0+dirty 385.30 ms 433.06 ms 47.76 ms
27e1bf3+dirty 398.69 ms 439.39 ms 40.69 ms
0781f75+dirty 406.72 ms 454.80 ms 48.08 ms
03c9048+dirty 397.35 ms 417.73 ms 20.37 ms
cadf235+dirty 455.51 ms 451.64 ms -3.87 ms
e0624b6+dirty 359.30 ms 397.94 ms 38.64 ms
db1844e+dirty 376.33 ms 428.67 ms 52.34 ms
26fc306+dirty 382.83 ms 435.31 ms 52.48 ms
561640f+dirty 378.73 ms 442.25 ms 63.52 ms
f4a5053+dirty 391.02 ms 427.04 ms 36.02 ms

App size

Revision Plain With Sentry Diff
50c70c0+dirty 7.15 MiB 8.38 MiB 1.23 MiB
27e1bf3+dirty 7.15 MiB 8.37 MiB 1.22 MiB
0781f75+dirty 7.15 MiB 8.37 MiB 1.22 MiB
03c9048+dirty 7.15 MiB 8.38 MiB 1.23 MiB
cadf235+dirty 7.15 MiB 8.37 MiB 1.22 MiB
e0624b6+dirty 7.15 MiB 8.38 MiB 1.23 MiB
db1844e+dirty 7.15 MiB 8.38 MiB 1.23 MiB
26fc306+dirty 7.15 MiB 8.37 MiB 1.22 MiB
561640f+dirty 7.15 MiB 8.37 MiB 1.22 MiB
f4a5053+dirty 7.15 MiB 8.38 MiB 1.23 MiB

Copy link
Contributor

github-actions bot commented Nov 29, 2024

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1247.80 ms 1244.61 ms -3.18 ms
Size 2.92 MiB 3.69 MiB 793.49 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
0d3e677+dirty 1239.02 ms 1241.22 ms 2.20 ms
728164b+dirty 1280.06 ms 1285.26 ms 5.20 ms
77680ec+dirty 1237.65 ms 1236.24 ms -1.41 ms
4297324+dirty 1240.86 ms 1232.04 ms -8.81 ms
4cc5c27+dirty 1220.43 ms 1215.13 ms -5.30 ms
07e58c9+dirty 1216.42 ms 1210.60 ms -5.82 ms
e1ea4a8+dirty 1228.98 ms 1222.80 ms -6.18 ms
e22745e+dirty 1246.02 ms 1233.60 ms -12.42 ms
83f6f6c+dirty 1232.02 ms 1229.15 ms -2.87 ms
d0bf494+dirty 1266.20 ms 1267.52 ms 1.32 ms

App size

Revision Plain With Sentry Diff
0d3e677+dirty 2.92 MiB 3.66 MiB 758.42 KiB
728164b+dirty 2.92 MiB 3.44 MiB 533.26 KiB
77680ec+dirty 2.92 MiB 3.66 MiB 758.54 KiB
4297324+dirty 2.92 MiB 3.64 MiB 741.22 KiB
4cc5c27+dirty 2.92 MiB 3.61 MiB 705.47 KiB
07e58c9+dirty 2.92 MiB 3.66 MiB 756.65 KiB
e1ea4a8+dirty 2.92 MiB 3.66 MiB 756.65 KiB
e22745e+dirty 2.92 MiB 3.66 MiB 756.73 KiB
83f6f6c+dirty 2.92 MiB 3.67 MiB 772.37 KiB
d0bf494+dirty 2.92 MiB 3.40 MiB 488.08 KiB

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

Startup times

Revision Plain With Sentry Diff
26fc306+dirty 1229.10 ms 1227.88 ms -1.22 ms
d33790a+dirty 1247.14 ms 1242.86 ms -4.28 ms
a3ba405+dirty 1229.31 ms 1228.16 ms -1.14 ms
db1844e+dirty 1231.94 ms 1238.86 ms 6.92 ms
27e1bf3+dirty 1245.78 ms 1244.38 ms -1.40 ms
03c9048+dirty 1231.52 ms 1225.96 ms -5.56 ms
f4a5053+dirty 1233.04 ms 1240.02 ms 6.98 ms
1dd8d17+dirty 1229.28 ms 1224.92 ms -4.36 ms
0781f75+dirty 1247.90 ms 1237.11 ms -10.79 ms
a06f6ba+dirty 1235.31 ms 1238.76 ms 3.45 ms

App size

Revision Plain With Sentry Diff
26fc306+dirty 2.92 MiB 3.67 MiB 773.77 KiB
d33790a+dirty 2.92 MiB 3.67 MiB 773.59 KiB
a3ba405+dirty 2.92 MiB 3.67 MiB 773.65 KiB
db1844e+dirty 2.92 MiB 3.69 MiB 793.48 KiB
27e1bf3+dirty 2.92 MiB 3.67 MiB 773.54 KiB
03c9048+dirty 2.92 MiB 3.67 MiB 774.29 KiB
f4a5053+dirty 2.92 MiB 3.67 MiB 774.18 KiB
1dd8d17+dirty 2.92 MiB 3.67 MiB 774.21 KiB
0781f75+dirty 2.92 MiB 3.67 MiB 773.83 KiB
a06f6ba+dirty 2.92 MiB 3.67 MiB 773.87 KiB

@antonis antonis changed the title Add simple form UI Feedback form UI Nov 29, 2024
Copy link
Contributor

github-actions bot commented Nov 29, 2024

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1233.02 ms 1233.82 ms 0.80 ms
Size 2.36 MiB 3.13 MiB 782.12 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
0d3e677+dirty 1214.39 ms 1225.70 ms 11.31 ms
728164b+dirty 1256.10 ms 1259.08 ms 2.98 ms
77680ec+dirty 1231.81 ms 1238.35 ms 6.54 ms
4297324+dirty 1230.27 ms 1232.53 ms 2.27 ms
4cc5c27+dirty 1211.45 ms 1214.60 ms 3.16 ms
07e58c9+dirty 1226.02 ms 1228.35 ms 2.33 ms
e1ea4a8+dirty 1233.49 ms 1237.71 ms 4.22 ms
e22745e+dirty 1222.73 ms 1224.98 ms 2.25 ms
83f6f6c+dirty 1218.33 ms 1220.27 ms 1.93 ms
d0bf494+dirty 1289.40 ms 1298.40 ms 9.00 ms

App size

Revision Plain With Sentry Diff
0d3e677+dirty 2.36 MiB 3.10 MiB 753.12 KiB
728164b+dirty 2.36 MiB 2.88 MiB 530.38 KiB
77680ec+dirty 2.36 MiB 3.10 MiB 753.42 KiB
4297324+dirty 2.36 MiB 3.08 MiB 735.61 KiB
4cc5c27+dirty 2.36 MiB 3.04 MiB 698.52 KiB
07e58c9+dirty 2.36 MiB 3.10 MiB 752.28 KiB
e1ea4a8+dirty 2.36 MiB 3.10 MiB 752.31 KiB
e22745e+dirty 2.36 MiB 3.10 MiB 752.32 KiB
83f6f6c+dirty 2.36 MiB 3.10 MiB 759.79 KiB
d0bf494+dirty 2.36 MiB 2.83 MiB 481.15 KiB

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

Startup times

Revision Plain With Sentry Diff
26fc306+dirty 1227.25 ms 1225.85 ms -1.40 ms
d33790a+dirty 1234.19 ms 1231.76 ms -2.43 ms
a3ba405+dirty 1223.00 ms 1219.06 ms -3.94 ms
db1844e+dirty 1230.79 ms 1234.22 ms 3.43 ms
27e1bf3+dirty 1230.92 ms 1232.33 ms 1.41 ms
03c9048+dirty 1235.37 ms 1238.15 ms 2.77 ms
f4a5053+dirty 1225.32 ms 1231.47 ms 6.15 ms
1dd8d17+dirty 1235.22 ms 1218.96 ms -16.27 ms
0781f75+dirty 1222.19 ms 1222.11 ms -0.08 ms
a06f6ba+dirty 1230.45 ms 1227.09 ms -3.36 ms

App size

Revision Plain With Sentry Diff
26fc306+dirty 2.36 MiB 3.11 MiB 761.18 KiB
d33790a+dirty 2.36 MiB 3.11 MiB 761.06 KiB
a3ba405+dirty 2.36 MiB 3.11 MiB 760.99 KiB
db1844e+dirty 2.36 MiB 3.13 MiB 782.13 KiB
27e1bf3+dirty 2.36 MiB 3.11 MiB 761.03 KiB
03c9048+dirty 2.36 MiB 3.11 MiB 761.74 KiB
f4a5053+dirty 2.36 MiB 3.11 MiB 761.72 KiB
1dd8d17+dirty 2.36 MiB 3.11 MiB 761.66 KiB
0781f75+dirty 2.36 MiB 3.11 MiB 761.35 KiB
a06f6ba+dirty 2.36 MiB 3.11 MiB 761.35 KiB

Base automatically changed from antonis/3859-newCaptureFeedbackAPI to main December 2, 2024 10:46
An error occurred while trying to automatically change base from antonis/3859-newCaptureFeedbackAPI to main December 2, 2024 10:46
Comment on lines 68 to 71
const { onFormClose } = { ...defaultConfiguration, ...this.props };
const config: FeedbackGeneralConfiguration = { ...defaultConfiguration, ...this.props };
const text: FeedbackTextConfiguration = { ...defaultConfiguration, ...this.props };
const styles: FeedbackFormStyles = { ...defaultStyles, ...this.props.styles };
Copy link
Member

Choose a reason for hiding this comment

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

Let do the merge only once { ...defaultConfiguration, ...this.props }.

On moder devices it should not make a perf difference, but let's be safe.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good idea 👍
Updated with 6e39119

@antonis
Copy link
Collaborator Author

antonis commented Dec 13, 2024

Can you add a snapshot test for the form?

One for defaults and maybe one for custom styles and one for custom "content" (meaning custom labels, text and placeholders)

That's a good idea. Thank you for the suggestion and the linked resource 🙇
I've added a subtask on the parent issue #4302 to implement this separately.

@antonis antonis changed the title (1) feat: Add Feedback From Component (1) feat: Add Feedback Form Component Dec 16, 2024
@antonis antonis mentioned this pull request Dec 16, 2024
10 tasks
@antonis
Copy link
Collaborator Author

antonis commented Dec 16, 2024

Can you add a snapshot test for the form?

One for defaults and maybe one for custom styles and one for custom "content" (meaning custom labels, text and placeholders)

That's a good idea. Thank you for the suggestion and the linked resource 🙇
I've added a subtask on the parent issue #4302 to implement this separately.

Opened a PR for this #4379

}
}

this._config = { ...defaultConfiguration, ...currentUser, ...props };
Copy link
Member

Choose a reason for hiding this comment

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

We should use the static defaultProps property otherwise the props passed to _config won't be changed on update, which would be unexpected behaviour.

https://legacy.reactjs.org/docs/react-without-es6.html#declaring-default-props

Copy link
Collaborator Author

@antonis antonis Dec 17, 2024

Choose a reason for hiding this comment

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

Thank you for pointing me to this @krystofwoldrich 🙇
Updated with 9a96e74 and 2be08a6

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

Successfully merging this pull request may close these issues.

Implement basic capture feedback form UI
3 participants