Jetpack Dashboard: update sharing settings to account for upcoming sharing block#34619
Conversation
This will allow us to conditionally display different links whether the upcoming sharing block is available or not. Down the road, we can remove those settings when the sharing block will be available for everyone.
Fixes #34325 See the designs in #34325 (comment) for more explanation.
|
Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.
Interested in more tips and information?
|
|
Thank you for your PR! When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:
This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖 The e2e test report can be found here. Please note that it can take a few minutes after the e2e tests checks are complete for the report to be available. Once your PR is ready for review, check one last time that all required checks appearing at the bottom of this PR are passing or skipped. Jetpack plugin: The Jetpack plugin has different release cadences depending on the platform:
If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. |
|
@andrii-lysenko Let me know what you think about this approach. I think if we're happy with this, we can follow a similar general logic for the other settings page. |
|
@jeherve Thanks for working on this and for an extensive explanation. I can clearly see the logic.
|
Does it impact the site if the legacy module is still active? Can we disable the feature ourselves without intervention from the user? The copy looks good, but I wonder if we're making it more complicated for users than it should be. |
andrii-lysenko
left a comment
There was a problem hiding this comment.
The code looks good, and tests as described.
I left some comments, but don't think they are blocking, especially at this stage where you would need to have beta blocks enabled to see this feature. However, we should use caution and notice if we will make block to prod, it will be shown to all users.
@keoshi It can impact the site, yes. You may find yourself with 2 sets of sharing buttons:
The 2 sets work differently, and having them both at the same time would end up being very confusing; you'd have toggles in the post editor impacting the legacy sharing options, a block in the site editor that doesn't modify the sharing buttons that were added via the legacy module. Beyond the visual aspect, I think that deactivating the legacy module makes a lot of sense when you don't use it: once it's off you're sure it's not going to have any impact (performance, UI elements on the frontend and in the editor) on your site. I could, however, imagine that some people will want to continue to use the legacy module, even if they use a block-based theme. It could be because they configured the legacy sharing buttons in a way that's not yet supported by the block (they could have added a custom sharing service for example). In this case, how do you think we should proceed in the different UI elements. Should we offer an option to "stick with the legacy sharing buttons" here in the Jetpack dashboard, or one to "view the legacy sharing options" in the Sharing settings in wp-admin > Settings > Sharing and Calypso > Tools > Marketing > Sharing Buttons (see #34673 and Automattic/wp-calypso#85180)?
@andrii-lysenko I agree. I created a draft for the new sharing block support doc. I think we could add everything there, including maybe a video.
Yes, that's a good point. I'm not sure if this should be done via a filter or a UI element. See my question to @keoshi above for more. |
|
Thanks for all the context @jeherve — I have one more question before I can fully wrap my head around the problem. Would it be possible for us to:
Thank you! |
That's a good question. I do want to say yes, but with some caveats:
Yeah, we can do that. |
|
Thanks again for all the context @jeherve. I asked that because the legacy social icons can only live in one spot and its option are relatively controlled, so if we could automatically recreate those for the user it would get them through the biggest hurdle here in terms of UX. It would keep the same icons with the same or closest visual style as possible, and put in the same place for them. As pointed out before, I still see the initial configuration of the sharing icons as a huge obstacle even to users that are familiar with Gutenberg, so lowering the friction for everyone would be nice. Even though I understand this solution would probably add too much complexity to the project and delay its release. To answer your question, adding a link to Settings so users can deactivate the legacy sharing icons seems easy to add and to understand. But it doesn't solve the disconnect between the legacy icons and the new ones. What I mean by that is that removing the old ones isn't enough and doesn't guarantee the new ones will magically show up. That's where the idea of an option to “Replace with new icons” came from. Another solution would be notify users in the frontend. Admin users would see a notice that the new options are available and are invited to switch between them. This option would create a hook where the icons are actually visible (the site their visitors also see) and give them a more tangible path forward. In general it seems like a good idea to:
I might be overcomplicating this too, so please let me know what's your preferred idea. |
|
Thanks for a thorough explanation @keoshi. |
|
Also, as a thought. Maybe we not force anything on users for now, we have these 2 functionalities distinct. We only need to have a proper support page explaining the block and it's relation to the Module, and that if they just want to switch to block they should switch off the module for better experience. To sum up, I see it even more like having a small message in the current UI (if block is available), like |
That is something @TimBroddin has been working on for Likes in #34732. Maybe we can do something similar for Sharing. Like @andrii-lysenko says though, that is something we can do in a second iteration maybe, with a first iteration only there to introduce the new Sharing block, suggest it without replacing the legacy buttons with it, explain the differences (either in the UI or in a support doc), and let folks deactivate the legacy sharing buttons if they feel like the new block would be a better fit for them. And then in a second iteration, once we have more feature parity between the legacy sharing buttons and the sharing block, we can opt to automatically replace one with the other? |
Such a good point, @andrii-lysenko — thanks for bringing me back down to earth. It's important to discuss all the implications we anticipate as early as possible, but I couldn't agree more with you two that what's even more important is to get people using the new tools. I really like what you propose above @jeherve. The only thing I'd note in terms of explaining in the UI vs support doc is that the latter sounds like it could be a more comprehensive resource, albeit not contextual. Please excuse my wandering about and let's get this in front of users. Thank you! 🙇 |
…-settings-sharing-block
|
@keoshi I've just updated the PR like so: Screen.Recording.2023-12-21.at.18.57.35.movWhat do you think about it? Would you suggest doing anything different? |
andrii-lysenko
left a comment
There was a problem hiding this comment.
I find this approach quite nice and it tests well. Will wait for @keoshi to check it out, but otherwise it seem good to go for me.
|
That looks really good, @jeherve! Two notes:
|
|
@andrii-lysenko Adding the “Legacy” tag is not something we've done in the past, so it could easily be misunderstood. Let's go without it for now and add later if/once we have supporting documentation/media on transitioning from legacy options to blocks. |
|
@keoshi Sounds good. Our next step would be a Call For Testing within A8C for probably next 2 weeks (as it's holiday season and lots of folks are out), so we'll see if this is sufficient enough. |
andrii-lysenko
left a comment
There was a problem hiding this comment.
Re-Approving as there was only a slight wording change.
…aring block (#34619) * Dashboard: Get sharing block availability for use in dashboard This will allow us to conditionally display different links whether the upcoming sharing block is available or not. Down the road, we can remove those settings when the sharing block will be available for everyone. * Make theme and sharing block info available to Sharing component * Update the interface to account for the sharing block Fixes #34325 See the designs in Automattic/jetpack#34325 (comment) for more explanation. * Add changelog * Link to a different support doc when you use the sharing block * Always display the legacy module toggle, but suggest the block See discussion in Automattic/jetpack#34619 (comment) * update wording Committed via a GitHub action: https://github.com/Automattic/jetpack/actions/runs/7302442324
…aring block (#34619) * Dashboard: Get sharing block availability for use in dashboard This will allow us to conditionally display different links whether the upcoming sharing block is available or not. Down the road, we can remove those settings when the sharing block will be available for everyone. * Make theme and sharing block info available to Sharing component * Update the interface to account for the sharing block Fixes #34325 See the designs in Automattic/jetpack#34325 (comment) for more explanation. * Add changelog * Link to a different support doc when you use the sharing block * Always display the legacy module toggle, but suggest the block See discussion in Automattic/jetpack#34619 (comment) * update wording Committed via a GitHub action: https://github.com/Automattic/jetpack/actions/runs/7302442324
There are currently 2 main options for sharing buttons: - The legacy sharing buttons, the preferrable option when you use a legacy/classic theme. - The sharing buttons block, when you use a block-based theme. We've tried to highlight the 2 options in #34619, but the wording mentioning "below" for a link that in fact lead to the site editor was confusing. This commit updates the wording and introduces a notice instead of a basic paragraph text that may be missed.
There are currently 2 main options for sharing buttons: - The legacy sharing buttons, the preferrable option when you use a legacy/classic theme. - The sharing buttons block, when you use a block-based theme. We've tried to highlight the 2 options in #34619, but the wording mentioning "below" for a link that in fact lead to the site editor was confusing. This commit updates the wording and introduces a notice instead of a basic paragraph text that may be missed.


Fixes #34325
Proposed changes:
In this PR, we update the Sharing settings under Jetpack > Settings > Sharing, to account for the upcoming Sharing block. Those settings now have to support both the legacy sharing module and the block. Both do not need to be active at the same time.
Screenshots
You can have different sharing settings statuses:
Status quo on a site that's connected to WordPress.com
-> When the module isn't active yet
-> When the module is active
Status quo on a site that's in Offline mode
In this case, the UI will look very similar to the first use-cases above, but when the module is active, the sharing settings link will lead to Settings > Sharing in wp-admin instead of the Sharing Buttons screen in Calypso. As a result, you also won't see an external link icon next to the configuration link.
New interface on a site using a block-based theme and the sharing block
When the legacy module is active
Here, we want to suggest turning the module off. It is not necessary on the site.
@keoshi I would appreciate your input on design and wording on this one, since that's not a use-case we had discussed in #34325 (comment)
When the legacy module is not active
Other information:
Jetpack product discussion
Does this pull request change what data or activity we track or use?
Yes, it adds tracking on the link used to disable the sharing module. You can check that tracking like so:
Testing instructions:
This will require switching themes, and switching between beta blocks and production blocks, as noted above. It's worth noting that on WordPress.com Simple, if you are proxied you're getting Beta blocks by default. Try unproxying to get production blocks.