-
Notifications
You must be signed in to change notification settings - Fork 2k
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
A4A > Feedback: Logical implementation of in-product feedback mechanism #97100
Conversation
Jetpack Cloud live (direct link)
Automattic for Agencies live (direct link)
|
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser: App Entrypoints (~12 bytes removed 📉 [gzipped])
Common code that is always downloaded and parsed every time the app is loaded, no matter which route is used. Sections (~4700 bytes added 📈 [gzipped])
Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to. Legend What is parsed and gzip size?Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory. Generated by performance advisor bot at iscalypsofastyet.com. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Side note: During our initial exploration, I suggested using the feedback data returned from one of our endpoints and not storing it in the app when the feedback form was sent. I mean, the backend would send to the app when the feedback forms were sent. That way, we are storing the information at the account level instead of the browser level. No matter the browser or computer the user uses, if the user already sent the form, it won't show it again.
The show/hide logic is executed in the app, but the information about it is provided inside one of the existing endpoints (i.e. agency). Something like agency.feedback.forms['the_feedback_reference'].sent_at
.
@cleacos: Thanks for the feedback!
We are not storing the data at the browser/app level. We are using the https://public-api.wordpress.com/rest/v1.1/me/preferences API endpoint to store. This is stored at the user level. So, no matter the browser the user uses, it will be shown only once. We already use this in multiple places. |
215b11b
to
eba0ebe
Compare
Nice! I was thinking in the app preferences :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense and works well 🚀
This should be safe to deploy as it's behind a feature flag. I'll go ahead and deploy. |
Related to https://github.com/Automattic/automattic-for-agencies-dev/issues/1246
Proposed Changes
This PR makes the logical implementation of the in-product feedback mechanism.
Why are these changes being made?
• Sending a referral
• Adding a team member
• Filling out partner directory information
NOTE: The UI is not yet integrated with the API endpoint, as it is in progress.
Testing Instructions
• Sending a referral (/marketplace/products > Toggle the refer mode on and send a referral)
• Adding a team member (/team/invite > Send invite)
• Filling out partner directory information (/partner-directory/agency-details > Save public profile)
#feedback
appended, you can find the URLs below.• Sending a referral (/marketplace/products > Toggle the refer mode on and send a referral)
Manual testing URL: /referrals/dashboard#feedback
• Adding a team member (/team/invite > Send invite)
Manual testing URL: /team/invite#feedback
• Filling out partner directory information (/partner-directory/agency-details > Save public profile)
Manual testing URL: /partner-directory/agency-details#feedback
How the preferences are stored:
Preferences can be reset from staging
Pre-merge Checklist