-
Notifications
You must be signed in to change notification settings - Fork 1.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
[dashboard] increase IDE awareness for onboarding users when starting workspace #9663
Conversation
@mustard-mh I don't understand which problem we are solving here? Could you elaborate in description what this PR does? |
/werft run without-vm=true 👍 started the job as gitpod-build-hw-9534-onboarding.13 |
9780f27
to
5e66880
Compare
I am rebasing and fixing merge conflicts |
/werft run without-vm=true 👍 started the job as gitpod-build-hw-9534-onboarding.15 |
@akosyakov I've updated the PR description, in short: it's a follow-up improvement for our experiment around IDE awareness. |
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.
It works as advertised: As a first-time user, using a context URL, I am prompted to select my preferred IDE/editore before the workspace starts.
When I initially approached this task before this PR was even created, I tried using the information in context or making an additional call to know if workspaces existed, but I admit that this approach is better because it extends the current architecture.
Perhaps I would rename needOnboardingIde
in needUserIdePreference
. What do you think, @mustard-mh?
Approved - the rename is not a blocker for me, only a preference and suggestion. I look forward to seeing this in production 🚀
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.
UX looks flawless! ✨
Thanks, @mustard-mh! 💯
5e66880
to
a2011ac
Compare
a2011ac
to
6caab87
Compare
Looks great @mustard-mh and co! I'm currently looking into measurement of the feature. I think there are some improvements that we can make, but I don't think it's necessary to block this from being merged / deployed, we can apply analytics improvements as an addition / follow up change. |
6caab87
to
58c70e2
Compare
58c70e2
to
f8a81e1
Compare
Update PR description to add a new test, since our check conditions changed |
f8a81e1
to
2e186af
Compare
); | ||
} else { | ||
toRender = <CreateWorkspace contextUrl={hash} />; | ||
} | ||
} else if (isWsStart) { | ||
toRender = <StartWorkspace {...parseProps(hash, window.location.search)} />; |
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.
We don't need to show Modal while restarting a workspace, because createWorkspace
covered most cases
@AlexTugarev Any other input about this PR 🙏? |
/werft run 👍 started the job as gitpod-build-hw-9534-onboarding.21 |
components/dashboard/src/App.tsx
Outdated
// We don't need to show IDE preference in this case | ||
const shouldUserIdePreferenceShown = User.isOnboardingUser(user) && !hash.startsWith(ContextURL.REFERRER_PREFIX); | ||
if (shouldUserIdePreferenceShown !== showUserIdePreference) { | ||
setShowUserIdePreference(shouldUserIdePreferenceShown); |
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.
setting a state here will result in an additional render cycle, AFAIC.
you can simplify with a const
here:
const showUserIdePreference = shouldUserIdePreferenceShown !== showUserIdePreference;
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.
@AlexTugarev Go with const
👍 and removed state.
Update: state
to re-render page, otherwise it'll cause some bugs like this one #9979
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.
@AlexTugarev Prev solution is because we have this one in App.tsx, maybe need to change it later? No, we need state to re-render page
gitpod/components/dashboard/src/App.tsx
Lines 331 to 334 in b294096
const shouldWhatsNewShown = shouldSeeWhatsNew(user); | |
if (shouldWhatsNewShown !== isWhatsNewShown) { | |
setWhatsNewShown(shouldWhatsNewShown); | |
} |
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.
2e186af
to
8857762
Compare
/hold Wait for my final test after built |
/unhold |
It's dangerous that after new commit pushed, review won't dismiss. It means I can |
Description
🧪 This is a PLG experiment that aims to increase the awareness of IDE/editor variety on Gitpod, for first-time users.
With #9432, we've introduced the IDE/editor selection as one of the very first steps for new users. However, some users start using Gitpod without going through the Dashboard - for example by using the context URL:
gitpod.io#REPO-URL
With this PR, we introduce the same modal UI component, but in the "Create Workspace" page (aka landing page when a context URL is used). This is only impacting users who want to start their first workspace, but don't have a preferred IDE/editor.
See GIF below, to preview the new UI
Related Issue(s)
Fixes #9534
Relates to #6707
How to test
Using this preview env:
https://hw-9534-onboarding.staging.gitpod-dev.com#<REPO_URL>
Open workspace via URL
[After Reset Account]
Default prefix/#
will wait until Modal close or choose. After select, will open workspace with choosed IDE.[After Reset Account]
Prefix with special IDE/#referrer
will set up user's defaultIde if it's not been set yet. Open with/#referrer
is behave like open via JetBrains Gateway UI with choosen IDE.defaultIde
for user's setting, go with the one specified in URLdefaultIde
behave like beforepycharm
)[After Reset Account]
Prefix with special IDE/#referrer
but args not correctly fit referrer required will use default idecode
to start workspacecode
/workspaces
will not appear./workspaces
PR see [Dashboard] Increase IDE awareness during onboarding #9432Test Cases
Every selection from user will change User setting immediately
continue
orX
, DB go withcode latest:false
use latest
and click continue orX
, DB go withcode latest:true
FYI: Check and reset your ide option
Check: go to preferences page to see current selection IDE
Reset: delete account on settings account page.
OR
Release Notes
Documentation
Screenshots / GIF