refactor: streamline session handling in payment and credits providers

This commit is contained in:
javayhu 2025-07-13 14:25:56 +08:00
parent bf8993ca96
commit c960738133
2 changed files with 10 additions and 14 deletions

View File

@ -15,10 +15,10 @@ export function PaymentProvider({ children }: { children: React.ReactNode }) {
const { data: session } = authClient.useSession(); const { data: session } = authClient.useSession();
useEffect(() => { useEffect(() => {
// Initialize payment state if (session?.user) {
const currentUser = session?.user; fetchPayment(session.user);
fetchPayment(currentUser); }
}, [session, fetchPayment]); }, [session?.user, fetchPayment]);
return <>{children}</>; return <>{children}</>;
} }

View File

@ -1,6 +1,6 @@
'use client'; 'use client';
import { useCurrentUser } from '@/hooks/use-current-user'; import { authClient } from '@/lib/auth-client';
import { useCreditsStore } from '@/stores/credits-store'; import { useCreditsStore } from '@/stores/credits-store';
import { useEffect } from 'react'; import { useEffect } from 'react';
@ -11,18 +11,14 @@ import { useEffect } from 'react';
* and handles cleanup when the user logs out. * and handles cleanup when the user logs out.
*/ */
export function CreditsProvider({ children }: { children: React.ReactNode }) { export function CreditsProvider({ children }: { children: React.ReactNode }) {
const user = useCurrentUser(); const { fetchCredits } = useCreditsStore();
const { fetchCredits, resetCreditsState } = useCreditsStore(); const { data: session } = authClient.useSession();
useEffect(() => { useEffect(() => {
if (user) { if (session?.user) {
// User is logged in, fetch their credits fetchCredits(session.user);
fetchCredits(user);
} else {
// User is logged out, reset the credits state
resetCreditsState();
} }
}, [user, fetchCredits, resetCreditsState]); }, [session?.user, fetchCredits]);
return <>{children}</>; return <>{children}</>;
} }