refactor: rename resetState to resetCreditsState and remove unused updateBalanceOptimistically method
This commit is contained in:
parent
4313e32471
commit
7af313868c
@ -18,7 +18,6 @@ import { LogOutIcon } from 'lucide-react';
|
||||
import { useTranslations } from 'next-intl';
|
||||
import { useState } from 'react';
|
||||
import { toast } from 'sonner';
|
||||
import { CreditsBalanceButton } from './credits-balance-button';
|
||||
import { CreditsBalanceMenu } from './credits-balance-menu';
|
||||
|
||||
interface UserButtonProps {
|
||||
|
@ -23,17 +23,17 @@ import { CreditCheckoutButton } from './credit-checkout-button';
|
||||
* @returns Credit packages component
|
||||
*/
|
||||
export function CreditPackages() {
|
||||
// If credits are not enabled, return null
|
||||
if (!websiteConfig.credits.enableCredits) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const t = useTranslations('Dashboard.settings.credits.packages');
|
||||
|
||||
// Get current user and payment info
|
||||
const currentUser = useCurrentUser();
|
||||
const { currentPlan } = usePayment();
|
||||
|
||||
// Don't render if credits are disabled
|
||||
if (!websiteConfig.credits.enableCredits) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Check if user is on free plan and enableForFreePlan is false
|
||||
const isFreePlan = currentPlan?.isFree === true;
|
||||
if (isFreePlan && !websiteConfig.credits.enableForFreePlan) {
|
||||
|
@ -16,7 +16,6 @@ export function useCredits() {
|
||||
fetchCredits,
|
||||
consumeCredits,
|
||||
refreshCredits,
|
||||
updateBalanceOptimistically,
|
||||
} = useCreditsStore();
|
||||
|
||||
const { data: session } = authClient.useSession();
|
||||
@ -56,7 +55,6 @@ export function useCredits() {
|
||||
|
||||
// Methods
|
||||
consumeCredits,
|
||||
updateBalanceOptimistically,
|
||||
|
||||
// Utility methods
|
||||
refetch,
|
||||
|
@ -55,7 +55,7 @@ export interface Price {
|
||||
*/
|
||||
export interface Credits {
|
||||
enable: boolean; // Whether to enable credits for this plan
|
||||
amount: number; // Number of credits provided
|
||||
amount: number; // Number of credits provided per month
|
||||
expireDays?: number; // Number of days until credits expire, undefined means no expiration
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ import { useEffect } from 'react';
|
||||
*/
|
||||
export function CreditsProvider({ children }: { children: React.ReactNode }) {
|
||||
const user = useCurrentUser();
|
||||
const { fetchCredits, resetState } = useCreditsStore();
|
||||
const { fetchCredits, resetCreditsState } = useCreditsStore();
|
||||
|
||||
useEffect(() => {
|
||||
if (user) {
|
||||
@ -20,9 +20,9 @@ export function CreditsProvider({ children }: { children: React.ReactNode }) {
|
||||
fetchCredits(user);
|
||||
} else {
|
||||
// User is logged out, reset the credits state
|
||||
resetState();
|
||||
resetCreditsState();
|
||||
}
|
||||
}, [user, fetchCredits, resetState]);
|
||||
}, [user, fetchCredits, resetCreditsState]);
|
||||
|
||||
return <>{children}</>;
|
||||
}
|
||||
|
@ -20,9 +20,7 @@ export interface CreditsState {
|
||||
fetchCredits: (user: Session['user'] | null | undefined) => Promise<void>;
|
||||
consumeCredits: (amount: number, description: string) => Promise<boolean>;
|
||||
refreshCredits: (user: Session['user'] | null | undefined) => Promise<void>;
|
||||
resetState: () => void;
|
||||
// For optimistic updates
|
||||
updateBalanceOptimistically: (amount: number) => void;
|
||||
resetCreditsState: () => void;
|
||||
}
|
||||
|
||||
// Cache duration: 30 seconds
|
||||
@ -192,22 +190,10 @@ export const useCreditsStore = create<CreditsState>((set, get) => ({
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Update balance optimistically (for external credit additions)
|
||||
* @param amount Amount to add to current balance
|
||||
*/
|
||||
updateBalanceOptimistically: (amount: number) => {
|
||||
const { balance } = get();
|
||||
set({
|
||||
balance: balance + amount,
|
||||
lastFetchTime: null, // Clear cache to fetch fresh data next time
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Reset credits state
|
||||
*/
|
||||
resetState: () => {
|
||||
resetCreditsState: () => {
|
||||
set({
|
||||
balance: 0,
|
||||
isLoading: false,
|
||||
|
Loading…
Reference in New Issue
Block a user