Skip to content

Commit 65c6093

Browse files
Merge pull request #1946 from appwrite/fix-org-loop
Always redirect to create-org after onboarding is completed once
2 parents 0fa4451 + 9e7f724 commit 65c6093

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/routes/(console)/onboarding/create-project/+page.svelte

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,27 @@
1212
import CreateProject from '$lib/layout/createProject.svelte';
1313
import { loadAvailableRegions } from '$routes/(console)/regions';
1414
import { regions as regionsStore } from '$lib/stores/organization';
15+
import { user } from '$lib/stores/user';
1516
1617
let isLoading = false;
1718
let id: string;
1819
let startAnimation = false;
1920
let projectName = 'Appwrite project';
2021
let region = Region.Fra;
22+
2123
export let data;
2224
25+
function markOnboardingComplete() {
26+
const currentPrefs = data.accountPrefs ?? $user.prefs;
27+
28+
const newPrefs = {
29+
...currentPrefs,
30+
newOnboardingCompleted: true
31+
};
32+
33+
sdk.forConsole.account.updatePrefs(newPrefs);
34+
}
35+
2336
async function createProject() {
2437
isLoading = true;
2538
@@ -31,6 +44,9 @@
3144
teamId,
3245
isCloud ? region : undefined
3346
);
47+
48+
markOnboardingComplete();
49+
3450
trackEvent(Submit.ProjectCreate, {
3551
customId: !!id,
3652
teamId

src/routes/(console)/onboarding/create-project/+page.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,17 @@ import { base } from '$app/paths';
1010

1111
// TODO: this needs to be cleaned up!
1212
export const load: PageLoad = async ({ parent }) => {
13-
const { organizations } = await parent();
13+
const { account, organizations } = await parent();
14+
15+
const accountPrefs = account.prefs;
16+
const hasCompletedOnboarding = accountPrefs['newOnboardingCompleted'] ?? false;
17+
18+
// user has already seen it, lets redirect now!
19+
if (hasCompletedOnboarding && !organizations?.total) {
20+
redirect(303, `${base}/onboarding/create-organization`);
21+
} else if (hasCompletedOnboarding && organizations?.total) {
22+
redirect(303, `${base}/organization-${organizations.teams[0].$id}`);
23+
}
1424

1525
if (!organizations?.total) {
1626
try {
@@ -30,6 +40,7 @@ export const load: PageLoad = async ({ parent }) => {
3040

3141
if (isOrganization(org)) {
3242
return {
43+
accountPrefs,
3344
organization: org
3445
};
3546
} else {
@@ -40,6 +51,7 @@ export const load: PageLoad = async ({ parent }) => {
4051
}
4152
} else {
4253
return {
54+
accountPrefs,
4355
organization: await sdk.forConsole.teams.create(
4456
ID.unique(),
4557
'Personal projects'
@@ -62,6 +74,7 @@ export const load: PageLoad = async ({ parent }) => {
6274
}
6375
if (!projects?.total) {
6476
return {
77+
accountPrefs,
6578
organization: org
6679
};
6780
} else {

0 commit comments

Comments
 (0)