From 1c4cacd72ddb2dfe20fa9440c423458a69ccc0e3 Mon Sep 17 00:00:00 2001
From: Darshan
Date: Sat, 6 Dec 2025 17:23:46 +0530
Subject: [PATCH 1/3] add: show invite if members addition is supported.
---
.../create-organization/+page.svelte | 30 ++++++++++++++-----
.../change-plan/+page.svelte | 26 +++++++++++-----
2 files changed, 41 insertions(+), 15 deletions(-)
diff --git a/src/routes/(console)/create-organization/+page.svelte b/src/routes/(console)/create-organization/+page.svelte
index aa72717733..0e1f15969c 100644
--- a/src/routes/(console)/create-organization/+page.svelte
+++ b/src/routes/(console)/create-organization/+page.svelte
@@ -9,7 +9,7 @@
import { Button, Form, InputTags, InputText } from '$lib/elements/forms';
import { Wizard } from '$lib/layout';
import type { Coupon } from '$lib/sdk/billing';
- import { isOrganization, tierToPlan } from '$lib/stores/billing';
+ import { isOrganization, plansInfo, tierToPlan } from '$lib/stores/billing';
import { addNotification } from '$lib/stores/notifications';
import type { OrganizationError, Organization } from '$lib/stores/organization';
import { sdk } from '$lib/stores/sdk';
@@ -42,6 +42,15 @@
let billingBudget: number;
let showCreditModal = false;
+ // check if the plan allows multiple members
+ $: planDetails = $plansInfo?.get(selectedPlan);
+ $: seatsAddon = planDetails?.addons?.seats;
+ $: canAddMembers = !seatsAddon || (seatsAddon.supported ?? false) || (seatsAddon.limit ?? 0) > 1;
+
+ $: if (!canAddMembers && collaborators.length > 0) {
+ collaborators = [];
+ }
+
afterNavigate(({ from }) => {
previousPage = from?.url?.pathname || previousPage;
});
@@ -193,6 +202,7 @@
id="name"
required />
+
+
{#if !isFreePlan(selectedPlan)}
-
+
+ {#if canAddMembers}
+
+ {/if}
{/if}
diff --git a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte
index 3b33f275fc..e841513ec4 100644
--- a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte
@@ -305,6 +305,15 @@
$: currentPlanGroup = $plansInfo?.get($organization?.billingPlan)?.group;
$: isSameGroupDowngrade =
currentPlanGroup && selectedPlanGroup && currentPlanGroup === selectedPlanGroup;
+
+ // check if the plan allows multiple members
+ $: planDetails = $plansInfo?.get(selectedPlan);
+ $: seatsAddon = planDetails?.addons?.seats;
+ $: canAddMembers = !seatsAddon || (seatsAddon.supported ?? false) || (seatsAddon.limit ?? 0) > 1;
+
+ $: if (!canAddMembers && collaborators.length > 0) {
+ collaborators = [];
+ }
@@ -439,14 +448,17 @@
{/await}
-
+ {#if canAddMembers}
+
+ {/if}
{/if}
+
{#if isDowngrade && isFreePlan(selectedPlan) && !data.hasFreeOrgs}
- {:else if $organization.billingPlan === BillingPlan.PRO}
+ {:else if isPaidPlan($organization.billingPlan)}
On the Pro plan, you'll be charged only for any usage that exceeds the thresholds
per resource listed below.
{/if}
+
+ {#if resolvedProfile.platform === Platform.Imagine}
+
+ Imagine Credits
+ Total Imagine credits consumed across your project. Resets at the start of each billing cycle.
+
+ {#if data.usage.imagineCredits}
+ {@const creditsTotal = data.usage.imagineCredits.reduce((sum, item) => sum + item.value, 0)}
+
+
+ {formatNumberWithCommas(creditsTotal)}
+
+ Credits
+
+ {#if data.usage.imagineCredits.length > 0}
+ [e.date, e.value])]
+ }
+ ]} />
+ {/if}
+ {:else}
+
+
+
+ No data to show
+
+
+ {/if}
+
+
+ {/if}
+
Bandwidth
Calculated for all bandwidth used across your project. Resets at the start of each billing cycle.
From f358bb46b481bfb362a1f6e57496b1240e3d274a Mon Sep 17 00:00:00 2001
From: Darshan
Date: Sun, 7 Dec 2025 10:52:58 +0530
Subject: [PATCH 3/3] lint.
---
.../create-organization/+page.svelte | 3 +-
.../change-plan/+page.svelte | 3 +-
.../settings/usage/[[invoice]]/+page.svelte | 75 ++++++++++---------
3 files changed, 44 insertions(+), 37 deletions(-)
diff --git a/src/routes/(console)/create-organization/+page.svelte b/src/routes/(console)/create-organization/+page.svelte
index 0e1f15969c..3006d9721f 100644
--- a/src/routes/(console)/create-organization/+page.svelte
+++ b/src/routes/(console)/create-organization/+page.svelte
@@ -45,7 +45,8 @@
// check if the plan allows multiple members
$: planDetails = $plansInfo?.get(selectedPlan);
$: seatsAddon = planDetails?.addons?.seats;
- $: canAddMembers = !seatsAddon || (seatsAddon.supported ?? false) || (seatsAddon.limit ?? 0) > 1;
+ $: canAddMembers =
+ !seatsAddon || (seatsAddon.supported ?? false) || (seatsAddon.limit ?? 0) > 1;
$: if (!canAddMembers && collaborators.length > 0) {
collaborators = [];
diff --git a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte
index e841513ec4..bd9dd6d056 100644
--- a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte
@@ -309,7 +309,8 @@
// check if the plan allows multiple members
$: planDetails = $plansInfo?.get(selectedPlan);
$: seatsAddon = planDetails?.addons?.seats;
- $: canAddMembers = !seatsAddon || (seatsAddon.supported ?? false) || (seatsAddon.limit ?? 0) > 1;
+ $: canAddMembers =
+ !seatsAddon || (seatsAddon.supported ?? false) || (seatsAddon.limit ?? 0) > 1;
$: if (!canAddMembers && collaborators.length > 0) {
collaborators = [];
diff --git a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte
index ab15f0470e..0fc8fa394a 100644
--- a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte
+++ b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte
@@ -88,43 +88,48 @@
{#if resolvedProfile.platform === Platform.Imagine}
- Imagine Credits
- Total Imagine credits consumed across your project. Resets at the start of each billing cycle.
-
- {#if data.usage.imagineCredits}
- {@const creditsTotal = data.usage.imagineCredits.reduce((sum, item) => sum + item.value, 0)}
-
-
- {formatNumberWithCommas(creditsTotal)}
-
- Credits
-
- {#if data.usage.imagineCredits.length > 0}
- Imagine Credits
+ Total Imagine credits consumed across your project. Resets at the start of each billing cycle.
+
+ {#if data.usage.imagineCredits}
+ {@const creditsTotal = data.usage.imagineCredits.reduce(
+ (sum, item) => sum + item.value,
+ 0
+ )}
+
+
+ {formatNumberWithCommas(creditsTotal)}
+
+ Credits
+
+ {#if data.usage.imagineCredits.length > 0}
+ [e.date, e.value])]
- }
- ]} />
+ }}
+ series={[
+ {
+ name: 'Credits',
+ data: [
+ ...data.usage.imagineCredits.map((e) => [e.date, e.value])
+ ]
+ }
+ ]} />
+ {/if}
+ {:else}
+
+
+
+ No data to show
+
+
{/if}
- {:else}
-
-
-
- No data to show
-
-
- {/if}
-
-
+
+
{/if}