fix: Show plan monthly_credits when user has no credits entry yet

UserStatusBadge now falls back to plan's monthly_credits (e.g., 10 for Starter)
instead of showing 0 when user_credits entry doesn't exist
This commit is contained in:
2025-12-26 23:10:02 +01:00
parent 9e2abb0aa3
commit 37634c26c8

View File

@@ -42,14 +42,15 @@ export default function UserStatusBadge() {
.eq('user_id', user.id) .eq('user_id', user.id)
.single(); .single();
// Get subscription plan // Get subscription plan with monthly credits
const { data: subscription } = await supabase const { data: subscription } = await supabase
.from('user_subscriptions') .from('user_subscriptions')
.select(` .select(`
plan_id, plan_id,
subscription_plans ( subscription_plans (
name, name,
display_name display_name,
monthly_credits
) )
`) `)
.eq('user_id', user.id) .eq('user_id', user.id)
@@ -59,8 +60,11 @@ export default function UserStatusBadge() {
const planData = subscription?.subscription_plans; const planData = subscription?.subscription_plans;
const plan = Array.isArray(planData) ? planData[0] : planData; const plan = Array.isArray(planData) ? planData[0] : planData;
// If no credits entry yet, show plan's monthly credits as expected amount
const displayCredits = credits?.balance ?? plan?.monthly_credits ?? 10;
setStatus({ setStatus({
credits: credits?.balance ?? 0, credits: displayCredits,
planName: plan?.name ?? 'starter', planName: plan?.name ?? 'starter',
planDisplayName: plan?.display_name ?? 'Starter', planDisplayName: plan?.display_name ?? 'Starter',
}); });