diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte index e223ec1fc..cd2417f29 100644 --- a/src/routes/(console)/organization-[organization]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/+page.svelte @@ -19,6 +19,8 @@ import { trackEvent, Click } from '$lib/actions/analytics'; import { type Models } from '@appwrite.io/console'; import { getServiceLimit, readOnly, upgradeURL } from '$lib/stores/billing'; + import { BillingPlan } from '$lib/constants'; + import { hideNotification, shouldShowNotification } from '$lib/helpers/notifications'; import { onMount, type ComponentType } from 'svelte'; import { canWriteProjects } from '$lib/stores/roles'; import { checkPricingRefAndRedirect } from '$lib/helpers/pricingRedirect'; @@ -45,6 +47,7 @@ let addOrganization = false; let showSelectProject = false; let showCreateProjectCloud = false; + let freePlanAlertDismissed = false; let searchQuery: SearchQuery; @@ -100,7 +103,23 @@ } ]); - onMount(async () => checkPricingRefAndRedirect(page.url.searchParams)); + function dismissFreePlanAlert() { + freePlanAlertDismissed = true; + const notificationId = `freePlanAlert_${data.organization.$id}`; + hideNotification(notificationId, { coolOffPeriod: 24 }); + + trackEvent(Click.OrganizationClickUpgrade, { + from: 'button', + source: 'free_plan_info_alert_dismiss' + }); + } + + onMount(async () => { + checkPricingRefAndRedirect(page.url.searchParams); + const notificationId = `freePlanAlert_${data.organization.$id}`; + const shouldShow = shouldShowNotification(notificationId); + freePlanAlertDismissed = !shouldShow; + }); function findRegion(project: Models.Project) { return $regionsStore.regions.find((region) => region.$id === project.region); @@ -179,6 +198,28 @@ {/if} + {#if isCloud && data.organization.billingPlan === BillingPlan.FREE && projectsToArchive.length === 0 && !freePlanAlertDismissed} + + Your Free plan includes up to 2 projects and limited resources. Upgrade to unlock + more capacity and features. + + + + + {/if} + {#if activeProjects.length > 0}