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();
useEffect(() => {
// Initialize payment state
const currentUser = session?.user;
fetchPayment(currentUser);
}, [session, fetchPayment]);
if (session?.user) {
fetchPayment(session.user);
}
}, [session?.user, fetchPayment]);
return <>{children}</>;
}

View File

@ -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}</>;
}