'use client'; import { useReducer, useEffect } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; interface FlipCardProps { value: number; label: string; maxDigits?: number; } interface FlipDigitProps { digit: number; prevDigit: number; } function FlipDigit({ digit, prevDigit }: FlipDigitProps) { return (
{/* 背景卡片 - 静态显示当前数字 */}
{digit}
{digit}
{/* 翻转动画层 */} {/* 上半部分翻转 */}
{prevDigit}
{/* 下半部分翻转 */}
{digit}
{/* 侧面阴影增强立体感 */}
); } function FlipCard({ value, label, maxDigits = 2 }: FlipCardProps) { const [state, dispatch] = useReducer( (prev: { current: number; previous: number }, next: number) => { if (next === prev.current) { return prev; } return { current: next, previous: prev.current }; }, { current: value, previous: value } ); useEffect(() => { dispatch(value); }, [value]); const formatNumber = (num: number) => { const str = num.toString().padStart(maxDigits, '0'); return str.split('').map(c => parseInt(c)); }; const currentDigits = formatNumber(state.current); const prevDigits = formatNumber(state.previous); return (
{currentDigits.map((digit, index) => ( ))}
{label}
); } interface FlipClockProps { years: number; months: number; days: number; } export function FlipClock({ years, months, days }: FlipClockProps) { return (

运营时长

自 2026 年 1 月 15 日 成立以来

:
:

持续打磨产品,致力于为企业提供优质的数字化转型服务

); }