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

feat(feedback): Support web environments #4558

Merged
merged 25 commits into from
Feb 20, 2025
Merged

Conversation

antonis
Copy link
Collaborator

@antonis antonis commented Feb 17, 2025

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

Based on #4546 to avoid conflicts

📜 Description

This PR handles the following issues on the web:

  • Adds support for attachments
  • Fixes web alerts using window.alert
  • Fixes input field focus issue

💡 Motivation and Context

See #4302 (comment)

💚 How did you test it?

Manual

📝 Checklist

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

🔮 Next steps

#skip-changelog

Copy link
Contributor

github-actions bot commented Feb 17, 2025

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

Generated by 🚫 dangerJS against 01cb31d

Copy link
Contributor

github-actions bot commented Feb 17, 2025

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 416.88 ms 422.87 ms 5.99 ms
Size 17.75 MiB 20.12 MiB 2.38 MiB

Baseline results on branch: feedback-ui

Startup times

Revision Plain With Sentry Diff
9402883 448.53 ms 468.73 ms 20.20 ms
e42816c 401.30 ms 410.04 ms 8.74 ms
3e4cdf5 462.35 ms 474.96 ms 12.61 ms
77e88fc 478.48 ms 487.21 ms 8.73 ms
8cb898b 438.83 ms 420.58 ms -18.25 ms
2646c98 429.98 ms 421.63 ms -8.35 ms
6b1624f 462.78 ms 465.13 ms 2.35 ms
df05370 477.62 ms 491.63 ms 14.00 ms
e5d5735 452.70 ms 453.04 ms 0.34 ms
894ebb0 497.45 ms 545.04 ms 47.60 ms

App size

Revision Plain With Sentry Diff
9402883 17.75 MiB 20.12 MiB 2.37 MiB
e42816c 17.75 MiB 20.12 MiB 2.38 MiB
3e4cdf5 17.75 MiB 20.12 MiB 2.37 MiB
77e88fc 17.75 MiB 20.12 MiB 2.37 MiB
8cb898b 17.75 MiB 20.12 MiB 2.37 MiB
2646c98 17.75 MiB 20.12 MiB 2.37 MiB
6b1624f 17.75 MiB 20.12 MiB 2.37 MiB
df05370 17.75 MiB 20.12 MiB 2.37 MiB
e5d5735 17.75 MiB 20.12 MiB 2.37 MiB
894ebb0 17.75 MiB 20.12 MiB 2.37 MiB

Previous results on branch: antonis/feedback-webfixes

Startup times

Revision Plain With Sentry Diff
d7f56e5 407.20 ms 458.96 ms 51.76 ms
e9a7e86 454.61 ms 468.71 ms 14.10 ms

App size

Revision Plain With Sentry Diff
d7f56e5 17.75 MiB 20.12 MiB 2.38 MiB
e9a7e86 17.75 MiB 20.12 MiB 2.38 MiB

Copy link
Contributor

github-actions bot commented Feb 17, 2025

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1232.78 ms 1231.57 ms -1.20 ms
Size 2.63 MiB 3.76 MiB 1.12 MiB

Baseline results on branch: feedback-ui

Startup times

Revision Plain With Sentry Diff
e5d5735+dirty 1222.02 ms 1222.22 ms 0.20 ms
8cb898b+dirty 1221.40 ms 1231.78 ms 10.37 ms
77e88fc+dirty 1224.55 ms 1232.41 ms 7.86 ms
9402883+dirty 1219.65 ms 1217.94 ms -1.72 ms
894ebb0+dirty 1224.33 ms 1214.45 ms -9.89 ms
e42816c+dirty 1211.29 ms 1219.65 ms 8.37 ms
0325426+dirty 1228.88 ms 1229.92 ms 1.04 ms
0459aee+dirty 1232.82 ms 1231.19 ms -1.63 ms
6b1624f+dirty 1224.65 ms 1225.65 ms 1.00 ms
269c976+dirty 1210.02 ms 1204.46 ms -5.56 ms

App size

Revision Plain With Sentry Diff
e5d5735+dirty 2.63 MiB 3.69 MiB 1.06 MiB
8cb898b+dirty 2.63 MiB 3.71 MiB 1.08 MiB
77e88fc+dirty 2.63 MiB 3.75 MiB 1.12 MiB
9402883+dirty 2.63 MiB 3.71 MiB 1.07 MiB
894ebb0+dirty 2.63 MiB 3.71 MiB 1.07 MiB
e42816c+dirty 2.63 MiB 3.75 MiB 1.12 MiB
0325426+dirty 2.63 MiB 3.69 MiB 1.06 MiB
0459aee+dirty 2.63 MiB 3.69 MiB 1.06 MiB
6b1624f+dirty 2.63 MiB 3.71 MiB 1.07 MiB
269c976+dirty 2.63 MiB 3.69 MiB 1.06 MiB

Previous results on branch: antonis/feedback-webfixes

Startup times

Revision Plain With Sentry Diff
d7f56e5+dirty 1215.96 ms 1222.83 ms 6.87 ms
e9a7e86+dirty 1219.31 ms 1223.33 ms 4.01 ms

App size

Revision Plain With Sentry Diff
d7f56e5+dirty 2.63 MiB 3.76 MiB 1.12 MiB
e9a7e86+dirty 2.63 MiB 3.76 MiB 1.12 MiB

Copy link
Contributor

github-actions bot commented Feb 17, 2025

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1219.31 ms 1230.70 ms 11.39 ms
Size 3.19 MiB 4.32 MiB 1.14 MiB

Baseline results on branch: feedback-ui

Startup times

Revision Plain With Sentry Diff
e5d5735+dirty 1217.78 ms 1221.80 ms 4.02 ms
8cb898b+dirty 1209.39 ms 1207.57 ms -1.82 ms
77e88fc+dirty 1218.79 ms 1220.00 ms 1.21 ms
9402883+dirty 1217.71 ms 1213.02 ms -4.69 ms
894ebb0+dirty 1210.94 ms 1202.08 ms -8.85 ms
e42816c+dirty 1220.08 ms 1222.46 ms 2.38 ms
0325426+dirty 1210.17 ms 1216.37 ms 6.20 ms
0459aee+dirty 1233.67 ms 1239.80 ms 6.12 ms
6b1624f+dirty 1224.12 ms 1220.73 ms -3.39 ms
269c976+dirty 1223.29 ms 1222.90 ms -0.39 ms

App size

Revision Plain With Sentry Diff
e5d5735+dirty 3.19 MiB 4.26 MiB 1.07 MiB
8cb898b+dirty 3.19 MiB 4.28 MiB 1.09 MiB
77e88fc+dirty 3.19 MiB 4.32 MiB 1.13 MiB
9402883+dirty 3.19 MiB 4.27 MiB 1.09 MiB
894ebb0+dirty 3.19 MiB 4.27 MiB 1.09 MiB
e42816c+dirty 3.19 MiB 4.32 MiB 1.13 MiB
0325426+dirty 3.19 MiB 4.26 MiB 1.07 MiB
0459aee+dirty 3.19 MiB 4.26 MiB 1.07 MiB
6b1624f+dirty 3.19 MiB 4.27 MiB 1.09 MiB
269c976+dirty 3.19 MiB 4.26 MiB 1.07 MiB

Previous results on branch: antonis/feedback-webfixes

Startup times

Revision Plain With Sentry Diff
d7f56e5+dirty 1236.69 ms 1236.24 ms -0.45 ms
e9a7e86+dirty 1225.75 ms 1219.46 ms -6.29 ms

App size

Revision Plain With Sentry Diff
d7f56e5+dirty 3.19 MiB 4.32 MiB 1.14 MiB
e9a7e86+dirty 3.19 MiB 4.32 MiB 1.14 MiB


export const feedbackAlertDialog = (title: string, message: string): void => {
/* eslint-disable @typescript-eslint/ban-ts-comment, no-restricted-globals, no-alert, @typescript-eslint/no-unsafe-member-access */
// @ts-ignore
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I used ts-ignore to avoid touching the global state and compilerOptions to use window. I'll be happy to iterate if there is better suggestion for this 🙇

Copy link
Collaborator

@lucas-zimerman lucas-zimerman Feb 18, 2025

Choose a reason for hiding this comment

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

One thing you could try is altering the worldwide.ts file at packages/core/src/js/utils/worldwride.ts

Change the ReactNativeInternalGlobal and add the following parameter:
alert?: (message: string) => void;

So with that you could use the following code

  if (isWeb() && typeof RN_GLOBAL_OBJ.alert !== 'undefined') {
    RN_GLOBAL_OBJ.alert(`${title}\n${message}`);
  } else {

EDIT: I think there may be an issue with my approach, RN_GLOBAL_OBJ points to globalThis and the alert is inside globalThis.window

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thank you for the suggestion @lucas-zimerman 🙇
This actually seems to work pretty well and there is no need to suppress any typescript checks.
Updated with 28738bf

@antonis antonis marked this pull request as ready for review February 17, 2025 17:29
Copy link
Contributor

github-actions bot commented Feb 17, 2025

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 407.90 ms 390.52 ms -17.37 ms
Size 7.15 MiB 8.39 MiB 1.24 MiB

Baseline results on branch: feedback-ui

Startup times

Revision Plain With Sentry Diff
9402883+dirty 436.49 ms 518.94 ms 82.45 ms
8cb898b+dirty 393.33 ms 416.20 ms 22.87 ms
6b1624f+dirty 382.17 ms 441.00 ms 58.83 ms
2646c98+dirty 415.13 ms 438.41 ms 23.28 ms
3e4cdf5+dirty 642.13 ms 702.23 ms 60.10 ms
0459aee+dirty 424.10 ms 466.63 ms 42.53 ms
b74349e+dirty 349.96 ms 375.00 ms 25.04 ms
e42816c+dirty 347.06 ms 348.18 ms 1.12 ms
df05370+dirty 395.08 ms 430.38 ms 35.30 ms
d1a10a1+dirty 364.43 ms 362.98 ms -1.45 ms

App size

Revision Plain With Sentry Diff
9402883+dirty 7.15 MiB 8.39 MiB 1.23 MiB
8cb898b+dirty 7.15 MiB 8.39 MiB 1.24 MiB
6b1624f+dirty 7.15 MiB 8.39 MiB 1.23 MiB
2646c98+dirty 7.15 MiB 8.38 MiB 1.23 MiB
3e4cdf5+dirty 7.15 MiB 8.39 MiB 1.23 MiB
0459aee+dirty 7.15 MiB 8.38 MiB 1.23 MiB
b74349e+dirty 7.15 MiB 8.39 MiB 1.24 MiB
e42816c+dirty 7.15 MiB 8.39 MiB 1.24 MiB
df05370+dirty 7.15 MiB 8.39 MiB 1.23 MiB
d1a10a1+dirty 7.15 MiB 8.39 MiB 1.24 MiB

Previous results on branch: antonis/feedback-webfixes

Startup times

Revision Plain With Sentry Diff
d7f56e5+dirty 391.04 ms 397.85 ms 6.81 ms
e9a7e86+dirty 407.96 ms 420.29 ms 12.33 ms

App size

Revision Plain With Sentry Diff
d7f56e5+dirty 7.15 MiB 8.39 MiB 1.24 MiB
e9a7e86+dirty 7.15 MiB 8.39 MiB 1.24 MiB

Base automatically changed from antonis/feedback-simplify-onaddscreenshot to feedback-ui February 18, 2025 14:48
# Conflicts:
#	packages/core/src/js/feedback/FeedbackWidget.tsx
Copy link
Member

@krystofwoldrich krystofwoldrich left a comment

Choose a reason for hiding this comment

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

Thank you! Works as expected with Expo Web.

@antonis antonis merged commit ef4be9e into feedback-ui Feb 20, 2025
66 checks passed
@antonis antonis deleted the antonis/feedback-webfixes branch February 20, 2025 07:59
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.

3 participants