feat: 接入公开币种目录并统一多币种金额与语言初始化处理

This commit is contained in:
2026-05-21 15:14:00 +08:00
parent 626914feb6
commit 6b18e25766
27 changed files with 277 additions and 94 deletions

View File

@@ -15,6 +15,7 @@ import { useRouter, useSearchParams } from "next/navigation";
import { useCallback, useEffect, useMemo, useState } from "react";
import { useTranslation } from "react-i18next";
import { getPublicCurrencies } from "@/api/currency";
import { getPlayerMe, getPlayerPing } from "@/api/player";
import { LanguageSwitcher } from "@/components/language-switcher";
import { Button, buttonVariants } from "@/components/ui/button";
@@ -93,7 +94,7 @@ export function EntryGate() {
const tokenFromUrl = searchParams.get("token") ?? "";
const { bearerToken, setBearerToken, setProfile, clearBearerToken } =
const { bearerToken, setBearerToken, setProfile, setCurrencies, clearBearerToken } =
usePlayerSessionStore();
const [phase, setPhase] = useState<Phase>("loading");
@@ -141,6 +142,13 @@ export function EntryGate() {
try {
const [me] = await Promise.all([getPlayerMe(), sleep(300)]);
try {
const currencies = await getPublicCurrencies();
setCurrencies(currencies.items);
} catch {
// 不阻断进场主流程;金额精度会退回默认 2 位兜底。
}
updateStep("token", "done");
updateStep("account", "done");
@@ -216,6 +224,7 @@ export function EntryGate() {
tokenFromUrl,
setBearerToken,
setProfile,
setCurrencies,
clearBearerToken,
router,
updateStep,