-
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
Plans: Introduce and hook up Jetpack product installer #31684
Conversation
Thanks for the thorough reviews, @ockham and @sirreal!
That's a fair question, @ockham! Well, I did consider a more complex data layer implementation initially, but then after doing a couple of experiments discovered that it would be much less flexible than what the current approach suggests. With the data layer approach much of what's happening would remaing behind the scenes, while in the current approach we're more flexible and have the possibility for the UI to benefit from knowing about what's going on under the hood. Also, as Jon mentions in #31684 (review) this aligns with our current architecture already, so it's not a new concept. The data layer one would definitely be helpful for some cases (polling itself), but we'd like to do more than that, as it's visible in the implementation.
Well, this is actually nota accurate - the plugin install flow takes place outside of the render tree. Close the window, and you'll still get your plugins installed :) What we're doing here is much simpler than the previous approach you're talking about - we're only displaying UI based on the installation status, and not doing anything about the installation itself, more than just triggering it. As mentioned above, I did consider a data layer approach, but it demonstrated to be much less flexible and usable for our UI-driven use case.
Of course! This will be shipped under a feature flag (see |
@jeffgolenski @keoshi @michelleweber I've updated the copy as you all suggested: It looks much shorter and I really dig it now. Thank you! |
@ockham, @sirreal @keoshi @jeffgolenski @michelleweber thank you all for the reviews and awesome feedback! This is ready for another code and design review. Thank you! |
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.
I did not retest, but I'm happy with the way this is looking 👍
* @param {Number} vaultpressKey VaultPress key. | ||
* @return {Object} Action object. | ||
*/ | ||
export const startJetpackProductInstall = ( siteId, akismetKey, vaultpressKey ) => ( { |
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.
I tend to agree with @ockham, but I also think this is unlikely to introduce any real problems ever, so I'm not especially concerned either way 🙂
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.
Looking absolutely great in my testing! Thanks again, Marin! 🛳
Thanks everybody! ❤️ |
This PR introduces a Jetpack product installer in the plans "My plan" page, where the new security checklist lives. This is aiming to replace the existing client-side Jetpack plugin setup process that happens after someone purchases a Jetpack plan.
For more context: p5XAZ9-2c7-p2
This is a big PR - I'm happy to split out some of the functionality into multiple PRs, but for the sake of testing, and given the range of this task I wrapped it as a single PR.
Changes proposed in this Pull Request
This PR introduces state, data layer and a component for installing Jetpack products, along with some UI changes in the thank you card and some behavioral changes. Uses an existing endpoint and D25853-code for the installation on the server side. A detailed list of changes is as follows:
getPluginKeys
selectorgetJetpackProductInstallStatus
selectorgetJetpackProductInstallProgress
selectorgetPluginKeys
selectorgetJetpackProductInstallStatus
selectorgetJetpackProductInstallProgress
selectorTesting instructions
public-api.wordpress.com
.&calypso_env=development
to the connection URL), and buy a plan, then observe when you reach the My Plan page.:siteSlug
is the slug of your Jetpack site.wp plugin deactivate akismet vaultpress --uninstall
to deactivate and uninstall the plugins, orwp plugin deactivate akismet vaultpress
to just deactivate the plugins on the Jetpack site.vaultpress_status
to bevaultpress_error
to witness this.Preview
Starting:

Progress:

More progress:

Even more progress:

Success:

Persistent error and next actions:
