From c960738133cdfc969ab4db7a009058e0db90ddb7 Mon Sep 17 00:00:00 2001 From: javayhu Date: Sun, 13 Jul 2025 14:25:56 +0800 Subject: [PATCH] refactor: streamline session handling in payment and credits providers --- src/components/layout/payment-provider.tsx | 8 ++++---- src/providers/credits-provider.tsx | 16 ++++++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/components/layout/payment-provider.tsx b/src/components/layout/payment-provider.tsx index a7ae915..60d6a47 100644 --- a/src/components/layout/payment-provider.tsx +++ b/src/components/layout/payment-provider.tsx @@ -15,10 +15,10 @@ export function PaymentProvider({ children }: { children: React.ReactNode }) { const { data: session } = authClient.useSession(); useEffect(() => { - // Initialize payment state - const currentUser = session?.user; - fetchPayment(currentUser); - }, [session, fetchPayment]); + if (session?.user) { + fetchPayment(session.user); + } + }, [session?.user, fetchPayment]); return <>{children}; } diff --git a/src/providers/credits-provider.tsx b/src/providers/credits-provider.tsx index 4f8232a..32ec079 100644 --- a/src/providers/credits-provider.tsx +++ b/src/providers/credits-provider.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useCurrentUser } from '@/hooks/use-current-user'; +import { authClient } from '@/lib/auth-client'; import { useCreditsStore } from '@/stores/credits-store'; import { useEffect } from 'react'; @@ -11,18 +11,14 @@ import { useEffect } from 'react'; * and handles cleanup when the user logs out. */ export function CreditsProvider({ children }: { children: React.ReactNode }) { - const user = useCurrentUser(); - const { fetchCredits, resetCreditsState } = useCreditsStore(); + const { fetchCredits } = useCreditsStore(); + const { data: session } = authClient.useSession(); useEffect(() => { - if (user) { - // User is logged in, fetch their credits - fetchCredits(user); - } else { - // User is logged out, reset the credits state - resetCreditsState(); + if (session?.user) { + fetchCredits(session.user); } - }, [user, fetchCredits, resetCreditsState]); + }, [session?.user, fetchCredits]); return <>{children}; }