From 0b6f81aca64ea157cf08386d60c5b8feb597548d Mon Sep 17 00:00:00 2001 From: javayhu Date: Thu, 10 Jul 2025 23:27:43 +0800 Subject: [PATCH] refactor: replace useTransactionStore with useCreditTransactionStore in credit-related components --- src/components/layout/credits-balance-button.tsx | 4 ++-- src/components/layout/credits-balance-menu.tsx | 4 ++-- .../settings/credits/credit-packages.tsx | 4 ++-- .../settings/credits/credit-transactions-page.tsx | 4 ++-- src/stores/transaction-store.ts | 15 +++++++++------ 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/components/layout/credits-balance-button.tsx b/src/components/layout/credits-balance-button.tsx index 07f6763..04650c4 100644 --- a/src/components/layout/credits-balance-button.tsx +++ b/src/components/layout/credits-balance-button.tsx @@ -4,13 +4,13 @@ import { getCreditBalanceAction } from '@/actions/get-credit-balance'; import { Button } from '@/components/ui/button'; import { useLocaleRouter } from '@/i18n/navigation'; import { Routes } from '@/routes'; -import { useTransactionStore } from '@/stores/transaction-store'; +import { useCreditTransactionStore } from '@/stores/transaction-store'; import { CoinsIcon, Loader2Icon } from 'lucide-react'; import { useEffect, useState } from 'react'; export function CreditsBalanceButton() { const router = useLocaleRouter(); - const { refreshTrigger } = useTransactionStore(); + const { refreshTrigger } = useCreditTransactionStore(); const [credits, setCredits] = useState(0); const [loading, setLoading] = useState(true); diff --git a/src/components/layout/credits-balance-menu.tsx b/src/components/layout/credits-balance-menu.tsx index ad0c4a1..8e559c0 100644 --- a/src/components/layout/credits-balance-menu.tsx +++ b/src/components/layout/credits-balance-menu.tsx @@ -3,7 +3,7 @@ import { getCreditBalanceAction } from '@/actions/get-credit-balance'; import { useLocaleRouter } from '@/i18n/navigation'; import { Routes } from '@/routes'; -import { useTransactionStore } from '@/stores/transaction-store'; +import { useCreditTransactionStore } from '@/stores/transaction-store'; import { CoinsIcon, Loader2Icon } from 'lucide-react'; import { useTranslations } from 'next-intl'; import { useEffect, useState } from 'react'; @@ -11,7 +11,7 @@ import { useEffect, useState } from 'react'; export function CreditsBalanceMenu() { const t = useTranslations('Marketing.avatar'); const router = useLocaleRouter(); - const { refreshTrigger } = useTransactionStore(); + const { refreshTrigger } = useCreditTransactionStore(); const [credits, setCredits] = useState(0); const [loading, setLoading] = useState(true); diff --git a/src/components/settings/credits/credit-packages.tsx b/src/components/settings/credits/credit-packages.tsx index f7e31c0..7126b93 100644 --- a/src/components/settings/credits/credit-packages.tsx +++ b/src/components/settings/credits/credit-packages.tsx @@ -15,7 +15,7 @@ import { useLocaleRouter } from '@/i18n/navigation'; import { formatPrice } from '@/lib/formatter'; import { cn } from '@/lib/utils'; import { Routes } from '@/routes'; -import { useTransactionStore } from '@/stores/transaction-store'; +import { useCreditTransactionStore } from '@/stores/transaction-store'; import { CircleCheckBigIcon, CoinsIcon, Loader2Icon } from 'lucide-react'; import { useTranslations } from 'next-intl'; import { useSearchParams } from 'next/navigation'; @@ -31,7 +31,7 @@ export function CreditPackages() { const t = useTranslations('Dashboard.settings.credits.packages'); const [loadingCredits, setLoadingCredits] = useState(true); const [credits, setCredits] = useState(null); - const { refreshTrigger, triggerRefresh } = useTransactionStore(); + const { refreshTrigger, triggerRefresh } = useCreditTransactionStore(); const currentUser = useCurrentUser(); const searchParams = useSearchParams(); const localeRouter = useLocaleRouter(); diff --git a/src/components/settings/credits/credit-transactions-page.tsx b/src/components/settings/credits/credit-transactions-page.tsx index d0a2da7..e6e786a 100644 --- a/src/components/settings/credits/credit-transactions-page.tsx +++ b/src/components/settings/credits/credit-transactions-page.tsx @@ -3,7 +3,7 @@ import { getCreditTransactionsAction } from '@/actions/get-credit-transactions'; import type { CreditTransaction } from '@/components/settings/credits/credit-transactions-table'; import { CreditTransactionsTable } from '@/components/settings/credits/credit-transactions-table'; -import { useTransactionStore } from '@/stores/transaction-store'; +import { useCreditTransactionStore } from '@/stores/transaction-store'; import type { SortingState } from '@tanstack/react-table'; import { useTranslations } from 'next-intl'; import { useEffect, useState } from 'react'; @@ -20,7 +20,7 @@ export function CreditTransactionsPageClient() { { id: 'createdAt', desc: true }, ]); const [loading, setLoading] = useState(false); - const { refreshTrigger } = useTransactionStore(); + const { refreshTrigger } = useCreditTransactionStore(); const fetchData = async () => { setLoading(true); diff --git a/src/stores/transaction-store.ts b/src/stores/transaction-store.ts index 47107da..311b6d8 100644 --- a/src/stores/transaction-store.ts +++ b/src/stores/transaction-store.ts @@ -1,11 +1,14 @@ -import { create } from "zustand"; +import { create } from 'zustand'; -interface TransactionStore { +interface CreditTransactionStore { refreshTrigger: number; triggerRefresh: () => void; } -export const useTransactionStore = create((set) => ({ - refreshTrigger: 0, - triggerRefresh: () => set((state) => ({ refreshTrigger: state.refreshTrigger + 1 })), -})); +export const useCreditTransactionStore = create( + (set) => ({ + refreshTrigger: 0, + triggerRefresh: () => + set((state) => ({ refreshTrigger: state.refreshTrigger + 1 })), + }) +);