feat(game): 添加游戏桌面组件的警告提示和动画效果
- 在动物游戏中添加余额不足和选择限制的警告提示 - 为警告状态添加震动动画和视觉反馈效果 - 实现倒计时警告状态的动画和样式变化 - 添加胜利和失败状态的历史记录显示 - 为筹码和操作按钮添加禁用状态的视觉效果 - 实现用户信息和流程按钮的交互功能 - 添加自动设置弹窗的打开功能 - 优化游戏阶段切换时的选择清空逻辑 - 添加剩余时间变化的回调函数支持 - 为历史记录添加中奖状态的颜色标识
This commit is contained in:
@@ -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,
|
||||
)}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user