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

New onboarding flow + console navigation #1517

Open
wants to merge 79 commits into
base: feat-pink-v2
Choose a base branch
from

Conversation

ernstmul
Copy link
Contributor

@ernstmul ernstmul commented Nov 15, 2024

What does this PR do?

New onboarding flow for users after registering.

The first FREE organisation is automatically created ("Personal projects"). The user only has to provide the name of their first project:
image

A loading and welcome animation is shown, before the user is brought to the dashboard:

Screen.Recording.2025-01-09.at.14.29.50.mov

Also in this PR is the new console navigation:
image

As well as get started pages:
image

Have you read the Contributing Guidelines on issues?

@coolify-appwrite-org
Copy link

coolify-appwrite-org bot commented Nov 15, 2024

The preview deployment is ready. 🟢

Open Preview | Open Build Logs

Last updated at: 2025-01-16 19:28:38 CET

@ernstmul ernstmul changed the title New onboarding flow New onboarding flow + console navigation Jan 20, 2025
Copy link
Member

Choose a reason for hiding this comment

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

we can rename to just breadcrumbs, its anyway only used on the console.

}
};
let projectsBottomSheet: SheetMenu;
$: projectsBottomSheet = {
Copy link
Member

Choose a reason for hiding this comment

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

why reactive ($:)? is it required like that?
if not we could use the variable declared right above it.

}
};
$: organizationsBottomSheet = !selectedOrg
Copy link
Member

Choose a reason for hiding this comment

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

same here about reactivity.

Comment on lines +135 to +151
onMount(() => {
if (window) {
const mediaQuery = window.matchMedia('(max-width: 768px)');
const updateViewport = () => (isSmallViewport = mediaQuery.matches);
// Initial check
updateViewport();
// Listen for changes
mediaQuery.addEventListener('change', updateViewport);
return () => {
// Cleanup listener
mediaQuery.removeEventListener('change', updateViewport);
};
}
});
Copy link
Member

Choose a reason for hiding this comment

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

what do you think about using - <svelte:window on:resize={updateViewport} />? That way we don't have to manage the window and cleanups.

class="trigger"
use:melt={$triggerOrganizations}
aria-label="Open organizations tab">
<span class="orgNameProject">{selectedOrg?.name ?? 'Organization'}</span>
Copy link
Member

Choose a reason for hiding this comment

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

Lets separate out the classes for orgNameProject with orgName & projectName, I see same classes for org and project name. Can get a little confusing.

} else {
location.reload();
}
}}>Dismiss this page</Button.Button>
Copy link
Member

Choose a reason for hiding this comment

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

Would Skip or something else look better? Haven't seen the design on this one yet so.

class="onboarding-card platform-card"
on:click={() => addPlatform(2)}>
<img
src={$app.themeInUse == 'dark'
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
src={$app.themeInUse == 'dark'
src={$app.themeInUse === 'dark'

class="onboarding-card platform-card"
on:click={() => addPlatform(1)}>
<img
src={$app.themeInUse == 'dark'
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
src={$app.themeInUse == 'dark'
src={$app.themeInUse === 'dark'

Copy link
Member

Choose a reason for hiding this comment

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

What if I use a different browser, incognito mode or a different device?
The onboarding would show each and every time. Lets use the team prefs instead.

Copy link
Member

Choose a reason for hiding this comment

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

I think I saw a logo url set as https://appwrite.io/images/logos/logo.svg somewhere, lets use the local svg instead.

outline: none;
display: flex;
align-items: center;
cursor: default;
Copy link
Member

Choose a reason for hiding this comment

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

This seems to make the buttons that use trigger class show arrow on hover instead of the pointer cursor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants