diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte index 51ed33e43..daa95d9bb 100644 --- a/src/lib/components/navbar.svelte +++ b/src/lib/components/navbar.svelte @@ -108,6 +108,7 @@ } $: currentOrg = organizations.find((org) => org.isSelected); + $: isProjectBlocked = currentProject?.status !== 'paused' && !!currentProject?.blocks?.length; beforeNavigate(() => (showAccountMenu = false)); @@ -137,7 +138,7 @@ size="xs" variant="secondary" href={`${base}/project-${currentProject.region}-${currentProject.$id}/get-started`} - >Connect + disabled={isProjectBlocked}>Connect {/if} diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index 19f6cc1d2..cd4f17db1 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -233,7 +233,10 @@ class:has-transition={showContentTransition} class:icons-content={state === 'icons' && selectedProject} class:no-sidebar={!hasSidebarSpace}> -
+
{#if $page.data?.header}
@@ -241,7 +244,9 @@ {/if} {#if showFooter} - + {/if}
@@ -294,6 +299,22 @@ .main-content { min-height: calc(100vh - 48px); + + &.is-project-blocked { + display: flex; + flex-direction: column; + overflow: hidden; + } + } + + .main-footer-slot { + &.is-project-blocked { + margin-top: auto; + position: sticky; + inset-block-end: 0; + z-index: 1; + background: var(--bgcolor-neutral-primary, #1d1d21); + } } .no-header { diff --git a/src/routes/(console)/project-[region]-[project]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/+layout.svelte index 1be677a58..780a857c6 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/+layout.svelte @@ -169,10 +169,25 @@ min-height: 100%; } + .project-layout.is-blocked { + display: flex; + flex: 1; + flex-direction: column; + flex: 1; + min-height: 0; + overflow: hidden; + } + .project-layout__content { min-height: 100%; } + .project-layout.is-blocked .project-layout__content { + flex: 1; + min-height: 0; + overflow: hidden; + } + .project-layout.is-blocked .project-layout__content { filter: blur(3px); opacity: 0.18; @@ -183,7 +198,7 @@ .project-layout__overlay { position: absolute; inset: 0; - z-index: 200; + z-index: 5; display: flex; align-items: center; justify-content: center;