turkmentv_front/lib/hooks/useLottery.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-12-25 13:46:20 +00:00
import { useState, useEffect } from 'react';
import { LotteryStatus } from '@/typings/lottery/lottery.types';
2024-12-23 19:32:36 +00:00
export const useLottery = (startDate: string, endDate: string) => {
2024-12-25 13:46:20 +00:00
const [status, setStatus] = useState<LotteryStatus>('not-started');
const [currentNumber, setCurrentNumber] = useState('22-22-22-22-22');
2024-12-23 19:32:36 +00:00
useEffect(() => {
const calculateStatus = () => {
const now = new Date();
const start = new Date(startDate);
const end = new Date(endDate);
2024-12-25 13:46:20 +00:00
if (now < start) return 'not-started';
if (now > end) return 'ended';
return 'started';
2024-12-23 19:32:36 +00:00
};
setStatus(calculateStatus());
const interval = setInterval(() => {
setStatus(calculateStatus());
}, 1000);
return () => clearInterval(interval);
}, [startDate, endDate]);
useEffect(() => {
2024-12-25 13:46:20 +00:00
if (status === 'started') {
2024-12-23 19:32:36 +00:00
const timer = setTimeout(() => {
2024-12-25 13:46:20 +00:00
setCurrentNumber('81-34-52-35-61');
2024-12-23 19:32:36 +00:00
}, 10000);
return () => clearTimeout(timer);
}
}, [status]);
return {
status,
2024-12-25 13:46:20 +00:00
setStatus,
2024-12-23 19:32:36 +00:00
currentNumber,
};
};