Automattic / wp-calypso

The JavaScript and API powered WordPress.com
https://developer.wordpress.com
GNU General Public License v2.0
12.42k stars 1.99k forks source link

Launchpad: Mark "Select a design" as pending if users have not explicitly picked a theme #93901

Closed taipeicoder closed 1 month ago

taipeicoder commented 2 months ago

Description

See context.

Currently, the "Select a design" task is marked as completed even in cases where the user hasn't explicitly switched to a new theme. Which is confusing, since they didn't really select anything.

Image

mmtr commented 2 months ago

Looks like this comes from here: https://github.com/Automattic/jetpack/blob/39b42750147c491d52ef22b4a238b442bc4f349b/projects/packages/jetpack-mu-wpcom/src/features/launchpad/launchpad-task-definitions.php#L68

The task is always assumed to be completed, but not every onboarding flow ensures that the task is completed.

For instance, in the write flow we show this screen:

Screenshot 2024-08-26 at 17 58 20

After writing the first with the "Draft your first post" post, we don't redirect users back to this screen. Instead we show the launchpad and the "Select a design" task will be already inaccurately completely.

Seems that we have a similar design_completed task for that reason: https://github.com/Automattic/jetpack/blob/39b42750147c491d52ef22b4a238b442bc4f349b/projects/packages/jetpack-mu-wpcom/src/features/launchpad/launchpad-task-definitions.php#L54

However the write flow currently uses design_selected: https://github.com/Automattic/jetpack/blob/abb0eda7c453c99c676c2cecc9f84136ed99143a/projects/packages/jetpack-mu-wpcom/src/features/launchpad/launchpad.php#L123

Whoever picks this issue should audit all the launchpad tasks definitions using the design_selected task and ensure that the design_completed task is used instead if the flow does not guarantee that a design is selected.

dsas commented 2 months ago

Flows with design_selected:

Task list Code Entrypoint Design selected guarantee?
Link in Bio tld code via w.link Yes - its own unskippable lib selector
Link in Bio code Dunno Yes, as above
Writing code Go through the /start flow, choose write goal, then choose to create post NO needs fix as it is pretty visible in the normal flow
Readymade templates code Go here and pick site layout (not in prod) Design selected guaranteed
AI Assembler code here then New site (not in prod) NO, first step is to use bigsky designer but can just go to wordpress.com/home/:siteSlug
Build (code) Go through the /start flow, choose build goal (?) Yes
Free (code) Any CTA on here NO - leave the design step and go to wordpress.com/home/:siteSlug
dsas commented 1 month ago

Will look at the AI assembler flow separately - that will require changes in Calypso to mark the step as done once the generated design is saved

await updateLaunchpadSettings( siteId, {
    checklist_statuses: { plan_completed: true },
} );
dsas commented 1 month ago

Actually it sounds like there's some fairly intensive changes planned to the UI given that it's not available in prod anyway and it's not completely broken if you do what you're supposed to do, I'm just going to leave AI assembler alone.