From 57cdcb5551b446c43d32c78d26f4377bbbd8d5e4 Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 3 Jun 2025 15:55:38 +0530 Subject: [PATCH] fix: reload regions on plan upgrades. --- .../organization-[organization]/change-plan/+page.svelte | 7 +++++++ src/routes/(console)/regions.ts | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte index b96c875c8..c35ee6882 100644 --- a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte +++ b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte @@ -30,6 +30,7 @@ } from '@appwrite.io/pink-svelte'; import { writable } from 'svelte/store'; import { onMount } from 'svelte'; + import { loadAvailableRegions } from '$routes/(console)/regions'; import EstimatedTotalBox from '$lib/components/billing/estimatedTotalBox.svelte'; export let data; @@ -58,6 +59,7 @@ afterNavigate(({ from }) => { previousPage = from?.url?.pathname || previousPage; }); + onMount(async () => { if (page.url.searchParams.has('code')) { const coupon = page.url.searchParams.get('code'); @@ -218,6 +220,11 @@ } if (isOrganization(org)) { + /** + * Reload on upgrade (e.g. Free → Paid) + */ + loadAvailableRegions(org.$id, true); + await invalidate(Dependencies.ACCOUNT); await invalidate(Dependencies.ORGANIZATION); diff --git a/src/routes/(console)/regions.ts b/src/routes/(console)/regions.ts index 9f84dd430..32dbd0308 100644 --- a/src/routes/(console)/regions.ts +++ b/src/routes/(console)/regions.ts @@ -10,13 +10,13 @@ let lastLoadedOrganization = null; * * Prevents unnecessary API calls if the regions are already loaded for the same organization. */ -export async function loadAvailableRegions(orgId: string): Promise { +export async function loadAvailableRegions(orgId: string, force: boolean = false): Promise { if (!isCloud || !orgId) return; try { const storedRegions = get(regions); - if (storedRegions.regions && lastLoadedOrganization === orgId) { + if (storedRegions.regions && lastLoadedOrganization === orgId && !force) { // already loaded for this organization, fast path return. return; }