diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx
index 8d5c099..377e25e 100644
--- a/src/pages/Dashboard.jsx
+++ b/src/pages/Dashboard.jsx
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { useAuth } from '../context/AuthContext';
+import { useSite } from '../context/SiteContext';
import { getUserUsage, redeemCode, Q, quotaToDollar } from '../api';
import SpotlightCard from '../components/bits/SpotlightCard';
import CountUp from '../components/bits/CountUp';
@@ -11,6 +12,8 @@ import toast from 'react-hot-toast';
export default function Dashboard() {
const { t } = useTranslation();
const { user, refreshUser } = useAuth();
+ const { site } = useSite();
+ const cs = site?.currency_symbol || '¥';
const [usage, setUsage] = useState(null);
const [redeemInput, setRedeemInput] = useState('');
const [redeeming, setRedeeming] = useState(false);
@@ -61,7 +64,7 @@ export default function Dashboard() {
{t('dashboard.balance')} {t('dashboard.quotaUnits', { count: quota.toLocaleString() })} {t('dashboard.used')} {t('dashboard.quotaUnits', { count: usedQuota.toLocaleString() })}
- {t('packages.yourBalance')} ${userBalance.toFixed(2)} + {t('packages.yourBalance')} {cs}{userBalance.toFixed(2)}
{insufficient && ({t('dashboard.balance')}
{t('dashboard.quotaUnits', { count: quota.toLocaleString() })}
@@ -333,7 +334,7 @@ export default function Topup() {{t('dashboard.used')}
{t('topup.calculating')}
) : payAmount ? (- {t('topup.payAmountLabel')}: ${payAmount} + {t('topup.payAmountLabel')}: {cs}{payAmount}
) : null} @@ -443,7 +444,7 @@ export default function Topup() { >- ${product.price} {product.currency || 'USD'} + {cs}{product.price} {product.currency || 'USD'}
{product.quota && ({t('topup.quotaIncluded') || `${product.quota} quota`}
@@ -460,7 +461,7 @@ export default function Topup() { > {paymentLoading && payingMethod === 'creem' ? t('topup.processing') - : `${t('topup.payNow') || 'Pay'} $${selectedCreemProduct.price}`} + : `${t('topup.payNow') || 'Pay'} ${cs}${selectedCreemProduct.price}`} )} @@ -592,7 +593,7 @@ export default function Topup() { {history.map((item, i) => (${item.amount}
+{cs}{item.amount}
{new Date(item.create_time * 1000).toLocaleString()} · {item.payment_method || t('topup.redeemCode')}
diff --git a/src/themes/claude/Home.jsx b/src/themes/claude/Home.jsx index ae2de0f..3998c20 100644 --- a/src/themes/claude/Home.jsx +++ b/src/themes/claude/Home.jsx @@ -16,6 +16,7 @@ export default function ClaudeHome() { const { t } = useTranslation(); const { user } = useAuth(); const { site } = useSite(); + const cs = site?.currency_symbol || '¥'; const [models, setModels] = useState([]); const [packages, setPackages] = useState([]); @@ -230,9 +231,9 @@ export default function ClaudeHome() { {pkg.description &&{pkg.description}
}{t('home.days', { count: pkg.duration })}
} diff --git a/src/themes/clean/Home.jsx b/src/themes/clean/Home.jsx index b4e965c..1ca3d71 100644 --- a/src/themes/clean/Home.jsx +++ b/src/themes/clean/Home.jsx @@ -15,6 +15,7 @@ export default function CleanHome() { const { t } = useTranslation(); const { user } = useAuth(); const { site } = useSite(); + const cs = site?.currency_symbol || '¥'; const [models, setModels] = useState([]); const [packages, setPackages] = useState([]); @@ -207,9 +208,9 @@ export default function CleanHome() { {pkg.description &&{pkg.description}
}{t('home.days', { count: pkg.duration })}
} diff --git a/src/themes/corporate/Home.jsx b/src/themes/corporate/Home.jsx index 1fb9f9e..0f77445 100644 --- a/src/themes/corporate/Home.jsx +++ b/src/themes/corporate/Home.jsx @@ -14,6 +14,7 @@ export default function CorporateHome() { const { t } = useTranslation(); const { user } = useAuth(); const { site } = useSite(); + const cs = site?.currency_symbol || '¥'; const [models, setModels] = useState([]); const [packages, setPackages] = useState([]); @@ -217,9 +218,9 @@ export default function CorporateHome() { {pkg.description &&{pkg.description}
}{t('home.days', { count: pkg.duration })}
} diff --git a/src/themes/dark/Home.jsx b/src/themes/dark/Home.jsx index 43a611d..3fa1d35 100644 --- a/src/themes/dark/Home.jsx +++ b/src/themes/dark/Home.jsx @@ -12,6 +12,7 @@ export default function DarkHome() { const { t } = useTranslation(); const { user } = useAuth(); const { site } = useSite(); + const cs = site?.currency_symbol || '¥'; const [models, setModels] = useState([]); const [packages, setPackages] = useState([]); @@ -178,9 +179,9 @@ export default function DarkHome() {{pkg.description}
}{t('home.days', { count: pkg.duration })}
}{pkg.description}
}{t('home.days', { count: pkg.duration })}
} diff --git a/src/themes/minimal/Home.jsx b/src/themes/minimal/Home.jsx index 79fbe28..42f7df8 100644 --- a/src/themes/minimal/Home.jsx +++ b/src/themes/minimal/Home.jsx @@ -11,6 +11,7 @@ export default function MinimalHome() { const { t } = useTranslation(); const { user } = useAuth(); const { site } = useSite(); + const cs = site?.currency_symbol || '¥'; const [models, setModels] = useState([]); const [packages, setPackages] = useState([]); @@ -142,9 +143,9 @@ export default function MinimalHome() {{pkg.description}
}{t('home.days', { count: pkg.duration })}
}