Only show get started page when actually clicking on it

This commit is contained in:
ernstmul
2025-02-05 15:13:24 +01:00
parent 630cd47266
commit d262ef464b
3 changed files with 140 additions and 144 deletions
+1 -1
View File
@@ -134,7 +134,7 @@
<Layout.Stack direction="column" gap="s">
<Tooltip inline={false} placement="right" disabled={state !== 'icons'}>
<a
href={`/console/project-${project.$id}?getStarted=false`}
href={`/console/project-${project.$id}`}
class="link"
on:click={() => {
sideBarIsOpen = false;
@@ -87,148 +87,144 @@
</svelte:head>
{#if $project}
{#if !hasOnboardingDismissed(projectId)}
<Onboard {projectId} hasPlatforms={$project.platforms.length > 0} />
{:else}
<Container overlapCover>
{#if $usage}
{@const storage = humanFileSize($usage.filesStorageTotal ?? 0)}
<section class="common-section">
<div class="grid-dashboard-1s-2m-6l">
<div class="card is-2-columns-medium-screen is-3-columns-large-screen">
<Bandwidth {period} on:change={(e) => changePeriod(e.detail)} />
</div>
<div class="card is-2-columns-medium-screen is-3-columns-large-screen">
<Requests {period} on:change={(e) => changePeriod(e.detail)} />
</div>
<a
href={`${base}/project-${projectId}/databases`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-database" aria-hidden="true" />
<span class="text">Database</span>
</div>
</div>
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{formatNum($usage.documentsTotal ?? 0)}
</div>
<div>Documents</div>
</div>
<div class="grid-item-1-end-end">
<div class="text">
Databases: {formatNum($usage.databasesTotal ?? 0)}
</div>
</div>
</div>
</a>
<a
href={`${base}/project-${projectId}/storage`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-folder" aria-hidden="true" />
<span class="text">Storage</span>
</div>
</div>
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{storage.value}
<span class="body-text-2">{storage.unit}</span>
</div>
<div>Storage</div>
</div>
<div class="grid-item-1-end-end">
<div class="text">
Buckets: {formatNum($usage.bucketsTotal ?? 0)}
</div>
</div>
</div>
</a>
<a
href={`${base}/project-${projectId}/auth`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-user-group" aria-hidden="true" />
<span class="text">Auth</span>
</div>
</div>
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{formatNum($usage.usersTotal ?? 0)}
</div>
<div>Users</div>
</div>
</div>
</a>
<a
href={`${base}/project-${projectId}/functions`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-lightning-bolt" aria-hidden="true" />
<span class="text">Functions</span>
</div>
</div>
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{formatNum($usage.executionsTotal ?? 0)}
</div>
<div>Executions</div>
</div>
<div class="grid-item-1-end-end">
<div class="text" />
</div>
</div>
</a>
<div
class="card is-2-columns-medium-screen is-2-columns-large-screen is-2-rows-large-screen is-location-row-2-end-large-screen">
<Realtime />
</div>
<Container overlapCover>
{#if $usage}
{@const storage = humanFileSize($usage.filesStorageTotal ?? 0)}
<section class="common-section">
<div class="grid-dashboard-1s-2m-6l">
<div class="card is-2-columns-medium-screen is-3-columns-large-screen">
<Bandwidth {period} on:change={(e) => changePeriod(e.detail)} />
</div>
</section>
{/if}
<div class="card is-2-columns-medium-screen is-3-columns-large-screen">
<Requests {period} on:change={(e) => changePeriod(e.detail)} />
</div>
<a
href={`${base}/project-${projectId}/databases`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-database" aria-hidden="true" />
<span class="text">Database</span>
</div>
</div>
<Layout.Stack gap="xl">
<Heading tag="h2" size="5" id="integrations">Integrations</Heading>
<Layout.Stack gap="xl" direction="row" justifyContent="space-between">
<Tabs>
<Tab
href={`${path}/platforms`}
selected={$page.url.pathname === `${path}/platforms`}
event="platforms">Platforms</Tab>
<Tab
href={`${path}/keys`}
selected={$page.url.pathname === `${path}/keys`}
event="keys">API keys</Tab>
</Tabs>
{#if $action}
<svelte:component this={$action} />
{/if}
</Layout.Stack>
<slot />
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{formatNum($usage.documentsTotal ?? 0)}
</div>
<div>Documents</div>
</div>
<div class="grid-item-1-end-end">
<div class="text">
Databases: {formatNum($usage.databasesTotal ?? 0)}
</div>
</div>
</div>
</a>
<a
href={`${base}/project-${projectId}/storage`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-folder" aria-hidden="true" />
<span class="text">Storage</span>
</div>
</div>
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{storage.value}
<span class="body-text-2">{storage.unit}</span>
</div>
<div>Storage</div>
</div>
<div class="grid-item-1-end-end">
<div class="text">
Buckets: {formatNum($usage.bucketsTotal ?? 0)}
</div>
</div>
</div>
</a>
<a
href={`${base}/project-${projectId}/auth`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-user-group" aria-hidden="true" />
<span class="text">Auth</span>
</div>
</div>
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{formatNum($usage.usersTotal ?? 0)}
</div>
<div>Users</div>
</div>
</div>
</a>
<a
href={`${base}/project-${projectId}/functions`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-lightning-bolt" aria-hidden="true" />
<span class="text">Functions</span>
</div>
</div>
<div class="grid-item-1-start-end" />
<div class="grid-item-1-end-start">
<div class="heading-level-4">
{formatNum($usage.executionsTotal ?? 0)}
</div>
<div>Executions</div>
</div>
<div class="grid-item-1-end-end">
<div class="text" />
</div>
</div>
</a>
<div
class="card is-2-columns-medium-screen is-2-columns-large-screen is-2-rows-large-screen is-location-row-2-end-large-screen">
<Realtime />
</div>
</div>
</section>
{/if}
<Layout.Stack gap="xl">
<Heading tag="h2" size="5" id="integrations">Integrations</Heading>
<Layout.Stack gap="xl" direction="row" justifyContent="space-between">
<Tabs>
<Tab
href={`${path}/platforms`}
selected={$page.url.pathname === `${path}/platforms`}
event="platforms">Platforms</Tab>
<Tab
href={`${path}/keys`}
selected={$page.url.pathname === `${path}/keys`}
event="keys">API keys</Tab>
</Tabs>
{#if $action}
<svelte:component this={$action} />
{/if}
</Layout.Stack>
</Container>
{/if}
<slot />
</Layout.Stack>
</Container>
{/if}
@@ -11,7 +11,7 @@
import { isSmallViewport } from '$lib/stores/viewport';
</script>
{#if hasOnboardingDismissed($project.$id) && !$page.url.pathname.includes('get-started')}
{#if !$page.url.pathname.includes('get-started')}
<Cover>
<svelte:fragment slot="header">
<Typography.Title color="--color-fgcolor-neutral-primary" size="xl">
@@ -21,7 +21,7 @@
</svelte:fragment>
</Cover>
{:else}
<Cover blocksize="auto">
<Cover blocksize={$isSmallViewport ? 'auto' : '152px'}>
<svelte:fragment slot="header">
<Layout.Stack
direction={$isSmallViewport ? 'column' : 'row'}