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

[Dashboard] Increase IDE awareness during onboarding #9432

Merged
merged 1 commit into from
Apr 28, 2022

Conversation

andreafalzetti
Copy link
Contributor

@andreafalzetti andreafalzetti commented Apr 20, 2022

Description

An experiment to try to increase the awareness of other IDEs besides VS Code.

Every selection from user will change User setting immediately

The approach used:

  • Extract the "IDE selection" into a standalone component <SelectIDE>
  • Introduced a new component <SelectIDEModal>
  • Extracted the util updateUserIDEInfo from <SelectIDE> to its own file
  • Re-use the <SelectIDE> in both the settings page and in SelectIDEModal
  • <SelectIDEModal> will appear in the workspaces page, if the user isOnboardingUser

Related Issue(s)

Fixes #9433
Relates to #6707

How to test

The first thing to test is that workspaces started without this new preference, will default to VS Code browser. If you want to only test the onboarding flow, skip all [optional] steps below.

  1. Sign-up in this preview environment
  2. [optional] Before selecting an IDE, try creating a workspace appending the repo to the preview env URL. This will make sure that users who skip this selection, can still launch workspaces with code as default IDE.
  3. [optional]Once the workspace starts, verify that VS Code Browser is the default IDE
  4. [optional]Stop the workspace gp stop and go back to the dashboard and delete your workspace
  5. [optional]Go back to the workspaces page
  6. Choose your preferred IDE (e.g IntelliJ)
  7. Start a workspace and verify that IntelliJ opens or options to download the JetBrains Gateway are presented

Test Cases

Every selection from user will change User setting immediately

  1. Choose nothing, refresh page will see modal again
  2. Choose nothing and click continue or X, DB go with code latest:false
  3. Check use latest and click continue or X, DB go with code latest:true
  4. Choose any IDE, DB will change

FYI: Check and reset your ide option

# check
SELECT id, name, additionalData->'$.ideSettings.defaultIde', additionalData->'$.ideSettings.useLatestVersion' FROM d_b_user WHERE id = '<your_user_id>';

# reset
UPDATE d_b_user SET additionalData='{"ideSettings":{},"emailNotificationSettings":{"allowsChangelogMail":true,"allowsDevXMail":true,"allowsOnboardingMail":true}}' WHERE id = '<your_user_id>';

Release Notes

Prompt first-time users to choose their default IDE 

Screenshots

Light Dark
Screenshot 2022-04-27 at 15 34 49 Screenshot 2022-04-27 at 15 35 32

@@ -55,52 +51,6 @@ export default function Preferences() {
};
migrationIDESettings();

const updateUserIDEInfo = async (selectedIde: string, useLatestVersion: boolean) => {
Copy link
Contributor Author

@andreafalzetti andreafalzetti Apr 25, 2022

Choose a reason for hiding this comment

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

I've extracted the logic to present & save the IDE preference from the Preferences page into a dedicated component <SelectIDE>

Copy link
Contributor Author

Choose a reason for hiding this comment

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

updateUserIDEInfo was also moved to its own file, to allow reusability

@andreafalzetti andreafalzetti force-pushed the af/ide-discovery-6707 branch from 9ff58b6 to c6ccddc Compare April 25, 2022 10:46
@andreafalzetti andreafalzetti force-pushed the af/ide-discovery-6707 branch from c6ccddc to 74c07d5 Compare April 25, 2022 11:03
@andreafalzetti
Copy link
Contributor Author

andreafalzetti commented Apr 25, 2022

/werft run with-vm=true

👍 started the job as gitpod-build-af-ide-discovery-6707.12
(with .werft/ from main)

@andreafalzetti andreafalzetti force-pushed the af/ide-discovery-6707 branch from 74c07d5 to ed8a514 Compare April 25, 2022 11:10
@andreafalzetti andreafalzetti force-pushed the af/ide-discovery-6707 branch 2 times, most recently from c4be658 to 5576b3f Compare April 25, 2022 11:27
@andreafalzetti andreafalzetti marked this pull request as ready for review April 25, 2022 11:42
@andreafalzetti andreafalzetti requested a review from a team April 25, 2022 11:42
@github-actions github-actions bot added the team: webapp Issue belongs to the WebApp team label Apr 25, 2022
@andreafalzetti andreafalzetti changed the title WIP: Increase IDE awareness during onboarding [Dashboard] Increase IDE awareness during onboarding Apr 25, 2022
@andreafalzetti andreafalzetti force-pushed the af/ide-discovery-6707 branch 2 times, most recently from cc0d6d2 to 2ae002d Compare April 25, 2022 13:21
@mustard-mh
Copy link
Contributor

Maybe we can also track here about how many people visit this IDE options page in dashboard etc

cc @loujaybee @andreafalzetti

@andreafalzetti andreafalzetti force-pushed the af/ide-discovery-6707 branch 4 times, most recently from 3dd2638 to e4477ac Compare April 27, 2022 13:38
@roboquat roboquat added size/XL and removed size/XXL labels Apr 27, 2022
@andreafalzetti andreafalzetti changed the title [WIP] [Dashboard] Increase IDE awareness during onboarding [Dashboard] Increase IDE awareness during onboarding Apr 27, 2022
@andreafalzetti andreafalzetti marked this pull request as ready for review April 27, 2022 13:44
@iQQBot
Copy link
Contributor

iQQBot commented Apr 27, 2022

/werft run with-clean-slate-deployment

👍 started the job as gitpod-build-af-ide-discovery-6707.28
(with .werft/ from main)

Copy link
Member

@AlexTugarev AlexTugarev left a comment

Choose a reason for hiding this comment

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

Hi @andreafalzetti!

I tried to test this changes, but was not able to trigger the modal to be shown.

'Verified several times and re-created accounts on the preview env, and also deleted cookies in between.

'Trying to debug I could see that User.isOnboardingUser(user!) === true in Workspaces.tsx initially and the modal's frame is about to render, but the next thing this is updated and some default IDE settings are set. Is that expected? I suppose this is not intended.

@gtsiolis
Copy link
Contributor

I tried to test this changes, but was not able to trigger the modal to be shown.

'Verified several times and re-created accounts on the preview env, and also deleted cookies in between.

Same here! Cc @AlexTugarev

@mustard-mh mustard-mh force-pushed the af/ide-discovery-6707 branch 2 times, most recently from 956e3ab to c8994af Compare April 27, 2022 17:01
Co-authored-by: mustard <[email protected]>
Co-authored-by: andreafalzetti <[email protected]>
@mustard-mh mustard-mh force-pushed the af/ide-discovery-6707 branch from c8994af to faef3f9 Compare April 27, 2022 17:52
Copy link
Member

@AlexTugarev AlexTugarev left a comment

Choose a reason for hiding this comment

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

LGTM!

I tested the new onboarding modal several times and it worked as advertised.

@roboquat roboquat merged commit 32434b5 into main Apr 28, 2022
@roboquat roboquat deleted the af/ide-discovery-6707 branch April 28, 2022 06:56
return !hasPreferredIde(user);
}

export function migrationIDESettings(user: User) {
Copy link
Member

Choose a reason for hiding this comment

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

@mustard-mh @andreafalzetti Why did we pull it to protocol from dashboard?

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Member

Choose a reason for hiding this comment

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

reads like you agree to put it in dashboard though, not in protocol

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we agreed to put it in protocol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deployed: webapp Meta team change is running in production deployed Change is completely running in production release-note size/XL team: webapp Issue belongs to the WebApp team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Property aware users that they can choose IDEs with onboarding dashboard
8 participants