From 6cda49cbeb5044ce330556750a823ea386f7c689 Mon Sep 17 00:00:00 2001 From: Harsh Mahajan Date: Tue, 24 Mar 2026 18:16:05 +0530 Subject: [PATCH 01/12] feat:blocked projects --- src/lib/layout/shell.svelte | 37 +++-- .../project-[region]-[project]/+layout.svelte | 148 +++++++++++++++++- .../blocked-lock.svg | 18 +++ 3 files changed, 188 insertions(+), 15 deletions(-) create mode 100644 src/routes/(console)/project-[region]-[project]/blocked-lock.svg diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index 4a2a7bcbf..58c1560d2 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -180,7 +180,7 @@ $: shouldRenderSidebar = !$isNewWizardStatusOpen && showSideNavigation && !$showOnboardingAnimation; $: hasSidebarSpace = shouldRenderSidebar && !$isTabletViewport && !!selectedProject; - + $: isProjectBlocked = selectedProject?.status !== 'paused' && !!selectedProject?.blocks?.length; $: { if ($isSidebarOpen) { yOnMenuOpen = window.scrollY; @@ -211,20 +211,22 @@ {/if} - {#if shouldRenderSidebar} - - {/if} +
+ {#if shouldRenderSidebar} + + {/if} - {#if !$showOnboardingAnimation} - - {/if} + {#if !$showOnboardingAnimation} + + {/if} +
From 7e0df1edb5a1d795a7db7cc40d1f3fd58bcb7471 Mon Sep 17 00:00:00 2001 From: Harsh Mahajan Date: Thu, 26 Mar 2026 14:07:22 +0530 Subject: [PATCH 08/12] fix layout --- .../project-[region]-[project]/+layout.svelte | 78 +++++++------------ 1 file changed, 29 insertions(+), 49 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/+layout.svelte index 73310c29e..9305c9f0a 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/+layout.svelte @@ -29,13 +29,20 @@ import PausedProjectModal from './pausedProjectModal.svelte'; import type { LayoutData } from './$types'; import { Button } from '$lib/elements/forms'; + import { currentPlan, organizationList } from '$lib/stores/organization'; import { wizard } from '$lib/stores/wizard'; import SupportWizard from '$routes/(console)/supportWizard.svelte'; import BlockedLock from './blocked-lock.svg'; import { isProjectBlocked as getIsProjectBlocked } from '$lib/helpers/project'; + import { Layout, Typography } from '@appwrite.io/pink-svelte'; + import type { Models } from '@appwrite.io/console'; export let data: LayoutData; $: isProjectBlocked = getIsProjectBlocked(data.project); + $: allOrgsHavePremiumSupport = $organizationList.teams.every( + (team) => (team as Models.Organization).billingPlanDetails.premiumSupport + ); + $: hasPremiumSupport = $currentPlan?.premiumSupport ?? allOrgsHavePremiumSupport ?? false; function contactSupport() { wizard.start(SupportWizard); @@ -145,12 +152,22 @@ class="project-layout__lock-icon" />
-
-

Project is currently blocked

-

Access to this project is restricted. Contact support if the issue persists.

+ + + + Project is currently blocked + + + Access to this project is restricted. Contact support if the issue persists. + + - -
+ {#if hasPremiumSupport} + + {:else} + + {/if} + {/if} @@ -192,13 +209,9 @@ align-items: center; justify-content: center; flex-direction: column; - gap: 1rem; + gap: 0.5rem; padding: 2rem; text-align: center; - pointer-events: none; - } - - .project-layout__overlay > * { pointer-events: auto; } @@ -209,15 +222,15 @@ } .project-layout__lock { - width: 3.5rem; - height: 3.5rem; + width: 2.75rem; + height: 2.75rem; display: flex; align-items: center; justify-content: center; - background: color-mix(in srgb, var(--bgcolor-neutral-primary, #ffffff) 92%, transparent); - border: 1px solid color-mix(in srgb, var(--border-neutral, #d7d7db) 70%, transparent); - border-radius: 1rem; - box-shadow: 0 12px 32px rgba(17, 24, 39, 0.08); + background: color-mix(in srgb, var(--bgcolor-neutral-primary, #ffffff) 96%, transparent); + border: 1px solid color-mix(in srgb, #fb4f7c 22%, var(--border-neutral, #d7d7db)); + border-radius: 0.875rem; + box-shadow: 0 8px 24px rgba(17, 24, 39, 0.06); } .project-layout__lock-icon { @@ -228,31 +241,6 @@ display: block; } - .project-layout__dialog { - max-width: 30rem; - display: flex; - flex-direction: column; - align-items: center; - gap: 0.75rem; - } - - .project-layout__dialog h2 { - margin: 0; - color: var(--fgcolor-neutral-primary, #2d2d31); - font-size: 2rem; - line-height: 1.05; - letter-spacing: -0.02em; - font-weight: 500; - } - - .project-layout__dialog p { - margin: 0; - max-width: 24rem; - color: var(--fgcolor-neutral-secondary, #56565c); - font-size: 1rem; - line-height: 1.4; - } - :global(.project-layout__dialog .button) { min-width: 10rem; min-height: 2.75rem; @@ -286,14 +274,6 @@ padding: 1.5rem; } - .project-layout__dialog h2 { - font-size: 1.5rem; - } - - .project-layout__dialog p { - font-size: 0.95rem; - } - .project-layout__lock { width: 3rem; height: 3rem; From dc06bf63aaac6c92107a6a0a7b1ec644e95cdd6a Mon Sep 17 00:00:00 2001 From: Harsh Mahajan Date: Thu, 26 Mar 2026 14:56:17 +0530 Subject: [PATCH 09/12] fixL global issues --- .../project-[region]-[project]/+layout.svelte | 30 +++++-------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/+layout.svelte index 9305c9f0a..e8490f1f7 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/+layout.svelte @@ -152,7 +152,7 @@ class="project-layout__lock-icon" /> - + Project is currently blocked @@ -162,11 +162,13 @@ - {#if hasPremiumSupport} - - {:else} - - {/if} +
+ {#if hasPremiumSupport} + + {:else} + + {/if} +
{/if} @@ -241,22 +243,6 @@ display: block; } - :global(.project-layout__dialog .button) { - min-width: 10rem; - min-height: 2.75rem; - padding-inline: 1rem; - border-radius: 0.9rem; - background: color-mix(in srgb, var(--bgcolor-neutral-primary, #ffffff) 92%, transparent); - border: 1px solid color-mix(in srgb, var(--border-neutral, #d7d7db) 75%, transparent); - box-shadow: 0 2px 8px rgba(17, 24, 39, 0.04); - } - - :global(.project-layout__dialog .button .text) { - color: var(--fgcolor-neutral-secondary, #56565c); - font-size: 1rem; - font-weight: 500; - } - .layout-level-progress-bars { gap: 1rem; z-index: 100; From bb309de3096abd68774ceca00ff51271bd751995 Mon Sep 17 00:00:00 2001 From: Harsh Mahajan Date: Thu, 26 Mar 2026 16:23:51 +0530 Subject: [PATCH 10/12] fix paused project modal --- .../project-[region]-[project]/pausedProjectModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[region]-[project]/pausedProjectModal.svelte b/src/routes/(console)/project-[region]-[project]/pausedProjectModal.svelte index 9e698b023..8c5fd1f17 100644 --- a/src/routes/(console)/project-[region]-[project]/pausedProjectModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/pausedProjectModal.svelte @@ -75,7 +75,7 @@ } - + This project has been paused due to inactivity. From 87619eed7bf66737142cfa6fea334a26037cd706 Mon Sep 17 00:00:00 2001 From: Harsh Mahajan Date: Thu, 26 Mar 2026 16:42:17 +0530 Subject: [PATCH 11/12] fix: disbaled shortcuts whne blocked --- src/lib/commandCenter/commandCenter.svelte | 3 +-- src/lib/components/navbar.svelte | 1 + src/routes/(console)/project-[region]-[project]/+layout.svelte | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/commandCenter/commandCenter.svelte b/src/lib/commandCenter/commandCenter.svelte index 91bf5dfe9..ae55da982 100644 --- a/src/lib/commandCenter/commandCenter.svelte +++ b/src/lib/commandCenter/commandCenter.svelte @@ -46,8 +46,7 @@ { callback: toggleCommandCenter, keys: ['k'], - ctrl: true, - forceEnable: true + ctrl: true }, { label: 'Toggle debug overlay', diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte index bc1d6a7a1..ce5b64a2b 100644 --- a/src/lib/components/navbar.svelte +++ b/src/lib/components/navbar.svelte @@ -203,6 +203,7 @@ diff --git a/src/routes/(console)/project-[region]-[project]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/+layout.svelte index e8490f1f7..e49558879 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/+layout.svelte @@ -5,7 +5,7 @@ import { project, stats } from './store'; import { goto } from '$app/navigation'; - import { registerCommands, registerSearchers } from '$lib/commandCenter'; + import { disableCommands, registerCommands, registerSearchers } from '$lib/commandCenter'; import { bucketSearcher, @@ -39,6 +39,7 @@ export let data: LayoutData; $: isProjectBlocked = getIsProjectBlocked(data.project); + $: $disableCommands(isProjectBlocked); $: allOrgsHavePremiumSupport = $organizationList.teams.every( (team) => (team as Models.Organization).billingPlanDetails.premiumSupport ); From 06adf0a41fa5d8e39d44c03f4d4c04f138bb3c5f Mon Sep 17 00:00:00 2001 From: Harsh Mahajan Date: Thu, 26 Mar 2026 17:00:27 +0530 Subject: [PATCH 12/12] added iscloud check for safety --- .../(console)/project-[region]-[project]/+layout.svelte | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/+layout.svelte index e49558879..4f358189d 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/+layout.svelte @@ -40,9 +40,11 @@ export let data: LayoutData; $: isProjectBlocked = getIsProjectBlocked(data.project); $: $disableCommands(isProjectBlocked); - $: allOrgsHavePremiumSupport = $organizationList.teams.every( - (team) => (team as Models.Organization).billingPlanDetails.premiumSupport - ); + $: allOrgsHavePremiumSupport = + isCloud && + ($organizationList?.teams ?? []).every( + (team) => (team as Models.Organization).billingPlanDetails?.premiumSupport === true + ); $: hasPremiumSupport = $currentPlan?.premiumSupport ?? allOrgsHavePremiumSupport ?? false; function contactSupport() {