diff --git a/src/lib/components/billing/alerts/projectsLimit.svelte b/src/lib/components/billing/alerts/projectsLimit.svelte
index 8e27243bb..78dc93e6e 100644
--- a/src/lib/components/billing/alerts/projectsLimit.svelte
+++ b/src/lib/components/billing/alerts/projectsLimit.svelte
@@ -9,11 +9,16 @@
upgradeURL
} from '$lib/stores/billing';
import { currentPlan } from '$lib/stores/organization';
+ import { onMount } from 'svelte';
import SelectProjectCloud from './selectProjectCloud.svelte';
- let showSelectProject = $state(false);
+ let showSelectProject: boolean = $state(false);
+ let selectedProjects: string[] = $state([]);
+ onMount(() => {
+ selectedProjects = page.data.organization?.projects || [];
+ });
-
+
{#if $currentPlan && $currentPlan.projects > 0 && !hideBillingHeaderRoutes.includes(page.url.pathname)}
{
const { organizations } = await parent();
@@ -28,6 +29,20 @@ export const load: LayoutLoad = async ({ depends, parent }) => {
preferences.organization ??
(organizations.teams.length > 0 ? organizations.teams[0].$id : undefined);
+ // Load projects for the current organization if one is selected
+ let projects = null;
+ if (currentOrgId) {
+ try {
+ projects = await sdk.forConsole.projects.list([
+ Query.equal('teamId', currentOrgId),
+ Query.limit(1000) // Get all projects for organization
+ ]);
+ } catch (e) {
+ // Handle error silently - projects might not be accessible
+ projects = {};
+ }
+ }
+
return {
plansInfo,
roles: [],
@@ -36,7 +51,8 @@ export const load: LayoutLoad = async ({ depends, parent }) => {
currentOrgId,
organizations,
consoleVariables,
- version: versionData?.version ?? null
+ version: versionData?.version ?? null,
+ projects
};
};