feat: 增强注单处理逻辑并优化用户反馈体验

新增注单错误处理逻辑,支持已退款及待确认状态的异常场景处理。
更新 HallBetResultDialog:针对部分失败与已退款订单显示对应提示信息。
优化注单分组逻辑,新增订单状态处理,提升整体订单管理能力。
新增订单状态与用户通知相关多语言翻译,进一步提升用户体验。
This commit is contained in:
2026-05-26 16:32:53 +08:00
parent 51b2a36cc5
commit ab81da3199
19 changed files with 373 additions and 142 deletions

View File

@@ -2,7 +2,7 @@
import { Wallet } from "lucide-react";
import Image from "next/image";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { useCallback, useEffect, useRef, useState } from "react";
import { useTranslation } from "react-i18next";
import { getWalletBalance, getWalletLogs } from "@/api/wallet";
@@ -42,6 +42,7 @@ export function WalletScreen() {
page: targetPage,
size: WALLET_LOGS_PAGE_SIZE,
type: filter || undefined,
currency,
});
setLogs((current) =>
append && current
@@ -49,7 +50,7 @@ export function WalletScreen() {
: nextLogs,
);
return nextLogs;
}, [filter]);
}, [currency, filter]);
useEffect(() => {
let cancelled = false;
@@ -107,20 +108,6 @@ export function WalletScreen() {
return () => window.removeEventListener(PLAYER_CURRENCY_CHANGE_EVENT, onCurrencyChange);
}, [refreshAll]);
const logsForCurrency = useMemo(() => {
if (!logs) return null;
const code = currency.toUpperCase();
return {
...logs,
items: logs.items.filter(
(item) => (item.currency_code || code).toUpperCase() === code,
),
pending_reconcile: logs.pending_reconcile.filter(
(item) => item.currency_code.toUpperCase() === code,
),
};
}, [currency, logs]);
const hasMore = logs ? logs.page < getWalletLogsLastPage(logs) : false;
const loadMore = useCallback(() => {
@@ -222,7 +209,7 @@ export function WalletScreen() {
</div>
<WalletLogsBlock
logs={logsForCurrency}
logs={logs}
logsLoading={loading || logsLoading}
loadingMore={loadingMore}
hasMore={hasMore}