|
28 | 28 | import PlatformFlutterImgSourceDark from './assets/platform-flutter-dark.svg'; |
29 | 29 | import PlatformSdkImgSource from './assets/platform-sdk.jpg'; |
30 | 30 | import PlatformSdkImgSourceDark from './assets/platform-sdk-dark.png'; |
31 | | - import { base } from '$app/paths'; |
| 31 | + import { resolve } from '$app/paths'; |
32 | 32 | import { isSmallViewport } from '$lib/stores/viewport'; |
33 | 33 | import type { Models } from '@appwrite.io/console'; |
34 | 34 | import { getPlatformInfo } from '$lib/helpers/platform'; |
35 | 35 | import { Click, trackEvent } from '$lib/actions/analytics'; |
36 | 36 | import { goto } from '$app/navigation'; |
37 | 37 | import { page } from '$app/state'; |
38 | 38 |
|
39 | | - export let pingCount = 0; |
40 | | - export let platforms: Models.Platform[] = []; |
| 39 | + let { |
| 40 | + pingCount = 0, |
| 41 | + platforms = [] |
| 42 | + }: { |
| 43 | + pingCount: number; |
| 44 | + platforms: Array<Models.Platform>; |
| 45 | + } = $props(); |
41 | 46 |
|
42 | | - function createKey() { |
43 | | - trackEvent(Click.KeyCreateClick, { |
44 | | - source: 'onboarding' |
| 47 | + const platformMap = $derived.by(() => { |
| 48 | + const map = new Map<string, Models.Platform>(); |
| 49 | + platforms.forEach((platform) => { |
| 50 | + const platformInfo = getPlatformInfo(platform.type); |
| 51 | + map.set(platformInfo.name, platform); |
45 | 52 | }); |
46 | | - goto( |
47 | | - `${base}/project-${page.params.region}-${page.params.project}/overview/api-keys/create`, |
48 | | - { |
49 | | - replaceState: true |
50 | | - } |
51 | | - ); |
| 53 | +
|
| 54 | + return map; |
| 55 | + }); |
| 56 | +
|
| 57 | + const projectRoute = $derived.by(() => { |
| 58 | + return resolve('/(console)/project-[region]-[project]', { |
| 59 | + region: page.params.region, |
| 60 | + project: page.params.project |
| 61 | + }); |
| 62 | + }); |
| 63 | +
|
| 64 | + function createKey() { |
| 65 | + trackEvent(Click.KeyCreateClick, { source: 'onboarding' }); |
| 66 | +
|
| 67 | + goto(`${projectRoute}/overview/api-keys/create`, { replaceState: true }); |
52 | 68 | } |
53 | 69 |
|
54 | 70 | function openPlatformWizard(type: number, platform?: Models.Platform) { |
55 | 71 | if (platform) { |
56 | | - continuePlatform(type, platform.name, platform.key, platform.type); |
| 72 | + continuePlatform(type, platform.name, platform.type); |
57 | 73 | } else { |
58 | 74 | trackEvent(Click.PlatformCreateClick, { source: 'onboarding' }); |
59 | 75 | addPlatform(type); |
60 | 76 | } |
61 | 77 | } |
62 | | -
|
63 | | - let platformMap = new Map(); |
64 | | -
|
65 | | - $: { |
66 | | - let updatedMap = new Map(); |
67 | | - platforms.forEach((platform) => { |
68 | | - const platformInfo = getPlatformInfo(platform.type); |
69 | | - updatedMap.set(platformInfo.name, platform); |
70 | | - }); |
71 | | - platformMap = updatedMap; |
72 | | - } |
73 | 78 | </script> |
74 | 79 |
|
75 | 80 | <div style:container-type="inline-size"> |
|
410 | 415 | <Card.Button |
411 | 416 | on:click={() => { |
412 | 417 | trackEvent(Click.OnboardingSetupDatabaseClick); |
413 | | - goto( |
414 | | - `${base}/project-${page.params.region}-${page.params.project}/databases` |
415 | | - ); |
| 418 | + goto(`${projectRoute}/databases`); |
416 | 419 | }} |
417 | 420 | padding="s" |
418 | 421 | ><Layout.Stack gap="xl" |
|
507 | 510 | justifyContent="flex-end"> |
508 | 511 | <Link.Anchor |
509 | 512 | variant="quiet-muted" |
510 | | - href={`${base}/project-${page.params.region}-${page.params.project}/auth/settings`} |
| 513 | + href={`${projectRoute}/auth/settings`} |
511 | 514 | on:click={() => { |
512 | 515 | trackEvent( |
513 | 516 | Click.OnboardingAuthEmailPasswordClick |
|
517 | 520 | </Link.Anchor> |
518 | 521 | <Link.Anchor |
519 | 522 | variant="quiet-muted" |
520 | | - href={`${base}/project-${page.params.region}-${page.params.project}/auth/settings`} |
| 523 | + href={`${projectRoute}/auth/settings`} |
521 | 524 | on:click={() => { |
522 | 525 | trackEvent( |
523 | 526 | Click.OnboardingAuthOauth2Click |
524 | 527 | ); |
525 | 528 | }}>OAuth 2</Link.Anchor> |
526 | 529 | <Link.Anchor |
527 | 530 | variant="quiet-muted" |
528 | | - href={`${base}/project-${page.params.region}-${page.params.project}/auth/settings`} |
| 531 | + href={`${projectRoute}/auth/settings`} |
529 | 532 | on:click={() => { |
530 | 533 | trackEvent( |
531 | 534 | Click.OnboardingAuthAllMethodsClick |
|
0 commit comments