turkmentv_front/components/lottery/winners/LotteryWinnersList.tsx

43 lines
1.3 KiB
TypeScript
Raw Normal View History

2024-12-29 18:02:23 +00:00
import {
LotteryWinnerData,
LotteryWinnerDataSimplified,
} from "@/typings/lottery/lottery.types";
import LotteryWinner from "./LotteryWinner";
import { motion, AnimatePresence } from "framer-motion";
import { v4 } from "uuid";
2024-11-25 14:33:01 +00:00
2024-12-29 18:02:23 +00:00
const LotteryWinnersList = ({
winners,
}: {
winners: LotteryWinnerDataSimplified[];
}) => {
2024-11-25 14:33:01 +00:00
return (
2024-12-25 13:46:20 +00:00
<div className="flex flex-col gap-4 w-full max-w-[1028px]">
2024-12-29 18:02:23 +00:00
<div className="flex flex-col gap-2 w-full pb-4 border-b border-[#CECCFF]">
<h4 className="md:font-heading-3-regular text-[28px]">Results</h4>
<p className="md:font-base-medium text-[16px]">
The results after each stage will be shown here.
</p>
2024-12-25 13:46:20 +00:00
</div>
2024-12-27 15:23:39 +00:00
<motion.div
layout
2024-12-29 18:02:23 +00:00
className="grid md:grid-cols-3 sm:grid-cols-2 grid-cols-1 gap-x-2 gap-y-4 w-full h-[244px] overflow-y-auto lottery-scrollbar"
>
2024-12-27 15:23:39 +00:00
<AnimatePresence mode="popLayout">
{winners.map((item, index) => (
<LotteryWinner
key={v4()}
phone={item.client}
ticket={item.ticket}
2024-12-27 16:20:13 +00:00
winnerNumber={item.winner_no}
2024-12-27 15:23:39 +00:00
isNew={index === winners.length - 1}
/>
))}
</AnimatePresence>
</motion.div>
2024-11-25 14:33:01 +00:00
</div>
);
};
export default LotteryWinnersList;