From 46c263cac57dd1e370a0f10a20dfba61981bb8e2 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Wed, 12 Feb 2025 15:25:22 +0100 Subject: [PATCH] Continue wizard if platform is already added --- src/lib/components/navbar.svelte | 2 +- src/lib/helpers/platform.ts | 27 ++++++++++ src/lib/stores/wizard.ts | 8 ++- src/routes/(console)/+layout.svelte | 2 +- .../organization-[organization]/+page.svelte | 25 +-------- .../get-started/+page.svelte | 5 +- .../project-[project]/overview/onboard.svelte | 53 +++++++++++++++---- .../overview/platforms/+page.svelte | 18 ++++++- .../overview/platforms/createFlutter.svelte | 2 +- 9 files changed, 102 insertions(+), 40 deletions(-) diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte index 393218919..a21c048e7 100644 --- a/src/lib/components/navbar.svelte +++ b/src/lib/components/navbar.svelte @@ -108,7 +108,7 @@ {logo.alt} - {#if selectedProject.pingCount === 0} + {#if selectedProject && selectedProject.pingCount === 0}
= 0; } + +export const getPlatformInfo = (platform: string) => { + let name: string, icon: string; + if (platform.includes('flutter')) { + name = 'Flutter'; + icon = 'flutter'; + } else if (platform.includes('react-native')) { + name = 'React Native'; + icon = 'react-native'; + } else if (platform.includes('apple')) { + name = 'Apple'; + icon = 'apple'; + } else if (platform.includes('android')) { + name = 'Android'; + icon = 'android'; + } else if (platform.includes('unity')) { + name = 'Unity'; + icon = 'unity'; + } else if (platform.includes('web')) { + name = 'Web'; + icon = 'code'; + } else { + name = 'Unknown'; + icon = 'unknown'; + } + return { name, icon }; +}; diff --git a/src/lib/stores/wizard.ts b/src/lib/stores/wizard.ts index 9a565b011..76e509bf9 100644 --- a/src/lib/stores/wizard.ts +++ b/src/lib/stores/wizard.ts @@ -13,6 +13,7 @@ export type WizardStore = { nextDisabled: boolean; step: number; interceptorNotificationEnabled: boolean; + props: Record; }; function createWizardStore() { @@ -25,7 +26,8 @@ function createWizardStore() { media: null, nextDisabled: false, step: 1, - finalAction: null + finalAction: null, + props: {} }); return { @@ -34,7 +36,8 @@ function createWizardStore() { start: ( component: typeof SvelteComponent, media: string = null, - step: number = 1 + step: number = 1, + props: Record = {} ) => update((n) => { n.show = true; @@ -46,6 +49,7 @@ function createWizardStore() { n.cover = null; n.nextDisabled = false; n.finalAction = null; + n.props = props; trackEvent('wizard_start'); return n; }), diff --git a/src/routes/(console)/+layout.svelte b/src/routes/(console)/+layout.svelte index e5969da70..8907538d8 100644 --- a/src/routes/(console)/+layout.svelte +++ b/src/routes/(console)/+layout.svelte @@ -352,7 +352,7 @@ {#if $wizard.show && $wizard.component} - + {:else if $wizard.cover} {/if} diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte index 9c332022e..6647afd93 100644 --- a/src/routes/(console)/organization-[organization]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/+page.svelte @@ -35,36 +35,13 @@ import { checkPricingRefAndRedirect } from '$lib/helpers/pricingRedirect'; import { Icon } from '@appwrite.io/pink-svelte'; import { IconPlus } from '@appwrite.io/pink-icons-svelte'; + import { getPlatformInfo } from '$lib/helpers/platform'; export let data; let addOrganization = false; let showCreate = false; - const getPlatformInfo = (platform: string) => { - let name: string, icon: string; - if (platform.includes('flutter')) { - name = 'Flutter'; - icon = 'flutter'; - } else if (platform.includes('apple')) { - name = 'Apple'; - icon = 'apple'; - } else if (platform.includes('android')) { - name = 'Android'; - icon = 'android'; - } else if (platform.includes('unity')) { - name = 'Unity'; - icon = 'unity'; - } else if (platform.includes('web')) { - name = 'Web'; - icon = 'code'; - } else { - name = 'Unknown'; - icon = 'unknown'; - } - return { name, icon }; - }; - function allServiceDisabled(project: Models.Project): boolean { let disabled = true; services.load(project); diff --git a/src/routes/(console)/project-[project]/get-started/+page.svelte b/src/routes/(console)/project-[project]/get-started/+page.svelte index 7642ec0fa..23575fdbe 100644 --- a/src/routes/(console)/project-[project]/get-started/+page.svelte +++ b/src/routes/(console)/project-[project]/get-started/+page.svelte @@ -9,4 +9,7 @@ Console - Appwrite - 0} /> + diff --git a/src/routes/(console)/project-[project]/overview/onboard.svelte b/src/routes/(console)/project-[project]/overview/onboard.svelte index c1236379b..093266172 100644 --- a/src/routes/(console)/project-[project]/overview/onboard.svelte +++ b/src/routes/(console)/project-[project]/overview/onboard.svelte @@ -1,10 +1,9 @@
- {#if !hasPlatforms} + {#if platforms.length === 0 || pingCount === 0}
@@ -66,7 +85,11 @@ - addPlatform(0)} padding="s" + { + openPlatformWizard(0, platformMap.get('Web')); + }} + padding="s" >
@@ -82,7 +105,7 @@
{ - addPlatform(1); + openPlatformWizard(4, platformMap.get('React Native')); }} padding="s" > - addPlatform(3)} padding="s"> + { + openPlatformWizard(3, platformMap.get('Apple')); + }} + padding="s"> - addPlatform(2)} padding="s"> + { + openPlatformWizard(2, platformMap.get('Android')); + }} + padding="s">
- addPlatform(1)} padding="s"> + { + openPlatformWizard(1, platformMap.get('Flutter')); + }} + padding="s">