feat(game): 添加游戏桌面组件的警告提示和动画效果

- 在动物游戏中添加余额不足和选择限制的警告提示
- 为警告状态添加震动动画和视觉反馈效果
- 实现倒计时警告状态的动画和样式变化
- 添加胜利和失败状态的历史记录显示
- 为筹码和操作按钮添加禁用状态的视觉效果
- 实现用户信息和流程按钮的交互功能
- 添加自动设置弹窗的打开功能
- 优化游戏阶段切换时的选择清空逻辑
- 添加剩余时间变化的回调函数支持
- 为历史记录添加中奖状态的颜色标识
This commit is contained in:
JiaJun
2026-05-18 18:01:33 +08:00
parent 85b4d9481f
commit 6ac42cf35e
15 changed files with 1125 additions and 91 deletions

View File

@@ -19,6 +19,7 @@ interface DesktopCountdownProps {
initialMs?: number
initialSeconds?: number
onComplete?: () => void
onRemainingMsChange?: (remainingMs: number) => void
}
export function DesktopCountdown({
@@ -26,6 +27,7 @@ export function DesktopCountdown({
initialMs,
initialSeconds,
onComplete,
onRemainingMsChange,
}: DesktopCountdownProps) {
const initialCountdownMs = useMemo(() => {
if (typeof initialMs === 'number') {
@@ -43,7 +45,8 @@ export function DesktopCountdown({
useEffect(() => {
setRemainingMs(initialCountdownMs)
}, [initialCountdownMs])
onRemainingMsChange?.(initialCountdownMs)
}, [initialCountdownMs, onRemainingMsChange])
useEffect(() => {
if (initialCountdownMs <= 0) {
@@ -58,6 +61,7 @@ export function DesktopCountdown({
const nextRemainingMs = Math.max(0, initialCountdownMs - elapsedMs)
setRemainingMs(nextRemainingMs)
onRemainingMsChange?.(nextRemainingMs)
if (nextRemainingMs === 0) {
window.clearInterval(timer)
@@ -68,12 +72,12 @@ export function DesktopCountdown({
return () => {
window.clearInterval(timer)
}
}, [initialCountdownMs, onComplete])
}, [initialCountdownMs, onComplete, onRemainingMsChange])
return (
<div
className={cn(
'font-countdown text-design-48 leading-none tracking-[0.08em] text-[#4BFFFE]',
'relative z-10 flex items-center justify-center font-countdown text-design-48 leading-none tracking-[0.08em] text-[#4BFFFE]',
className,
)}
>