From b28be878a0883f446d821de38e7f0159d0b1acb2 Mon Sep 17 00:00:00 2001 From: Darshan Date: Mon, 8 Dec 2025 15:44:43 +0530 Subject: [PATCH 1/4] update: credits layout. --- .../settings/usage/[[invoice]]/+page.svelte | 122 ++++++++++-------- .../settings/usage/[[invoice]]/+page.ts | 2 + 2 files changed, 73 insertions(+), 51 deletions(-) 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 0fc8fa394..4c3cac986 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 @@ -1,7 +1,7 @@ @@ -66,19 +72,19 @@

On the Scale plan, you'll be charged only for any usage that exceeds the thresholds per resource listed below. ($showUsageRatesModal = true)} + onclick={() => ($showUsageRatesModal = true)} >Learn more about plan usage limits.

{: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. ($showUsageRatesModal = true)} + onclick={() => ($showUsageRatesModal = true)} >Learn more about plan usage limits.

{:else if isFreePlan($organization?.billingPlan)}

- If you exceed the limits of the {plan} plan, services for your projects may be disrupted. + If you exceed the limits of the {planName} plan, services for your projects may be disrupted. Upgrade for greater capacity. @@ -86,40 +92,54 @@ {/if} - {#if resolvedProfile.platform === Platform.Imagine} + {#if resolvedProfile.id === ProfileMode.STUDIO} - Imagine Credits - Total Imagine credits consumed across your project. Resets at the start of each billing cycle. + Credits + Current credit usage included in your plan. {#if data.usage.imagineCredits} {@const creditsTotal = data.usage.imagineCredits.reduce( (sum, item) => sum + item.value, 0 )} - - - {formatNumberWithCommas(creditsTotal)} - - Credits + {@const creditsLimit = plan.limits?.credits ?? plan.limits?.dailyCredits ?? 0} + {@const percentageUsed = + creditsLimit > 0 ? Math.round((creditsTotal / creditsLimit) * 100) : 0} + + + + + {formatNumberWithCommas(creditsTotal)} + + Credits used + + + + + {percentageUsed}% + + - {#if data.usage.imagineCredits.length > 0} - [e.date, e.value]) - ] - } - ]} /> - {/if} + } + ]} /> + + + {formatNumberWithCommas(creditsTotal)} + + {formatNumberWithCommas(creditsLimit)} + {:else} diff --git a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts index e5e1ee5a6..b1f770452 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts @@ -60,6 +60,8 @@ export const load: PageLoad = async ({ params, parent }) => { usage.users = accumulateUsage(usage.users, usage.usersTotal); + console.log(usage); + return { usage, invoices, From ee9bd66125055e3118cba5732806796ca36c4d2d Mon Sep 17 00:00:00 2001 From: Darshan Date: Mon, 8 Dec 2025 15:44:57 +0530 Subject: [PATCH 2/4] remove: leftover. --- .../settings/usage/[[invoice]]/+page.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts index b1f770452..e5e1ee5a6 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts @@ -60,8 +60,6 @@ export const load: PageLoad = async ({ params, parent }) => { usage.users = accumulateUsage(usage.users, usage.usersTotal); - console.log(usage); - return { usage, invoices, From d17f57035efe0fec4c30995b98c2fcbdfa9739b1 Mon Sep 17 00:00:00 2001 From: Darshan Date: Mon, 8 Dec 2025 18:53:13 +0530 Subject: [PATCH 3/4] lint. --- src/lib/components/organizationUsageLimits.svelte | 6 ++++-- .../organization-[organization]/change-plan/+page.svelte | 3 ++- .../auth/templates/emailSignature.svelte | 3 ++- .../databases/database-[database]/settings/+page.svelte | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lib/components/organizationUsageLimits.svelte b/src/lib/components/organizationUsageLimits.svelte index 3d0341881..27b97bc96 100644 --- a/src/lib/components/organizationUsageLimits.svelte +++ b/src/lib/components/organizationUsageLimits.svelte @@ -262,8 +262,10 @@ {#if showSelectProject} - Choose which {freePlanLimits.projects} projects to keep. Projects over the limit will be blocked - after your billing cycle ends on {toLocaleDate($organization.billingNextInvoiceDate)}. + Choose which {freePlanLimits.projects} projects to keep. Projects over the limit will be + blocked after your billing cycle ends on {toLocaleDate( + $organization.billingNextInvoiceDate + )}. {#if error} diff --git a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte index 48ee2b2a9..bd9dd6d05 100644 --- a/src/routes/(console)/organization-[organization]/change-plan/+page.svelte +++ b/src/routes/(console)/organization-[organization]/change-plan/+page.svelte @@ -382,7 +382,8 @@ {:else} After switching plans, you will be charged {price} monthly for {extraMembers} team members. + >you will be charged {price} monthly for {extraMembers} team + members. This will be reflected in your next invoice. {/if} diff --git a/src/routes/(console)/project-[region]-[project]/auth/templates/emailSignature.svelte b/src/routes/(console)/project-[region]-[project]/auth/templates/emailSignature.svelte index 837d2d599..186096bfb 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/templates/emailSignature.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/templates/emailSignature.svelte @@ -49,7 +49,8 @@ Upgrade to remove {resolvedProfile.platform} branding - Upgrade to a {nextTier} plan to remove the {resolvedProfile.platform} branding from your emails. + Upgrade to a {nextTier} plan to remove the {resolvedProfile.platform} branding from your + emails.