Skip to content

Commit 77c2e5f

Browse files
committed
feat(pages): add ComingSoon countdown page
1 parent b28ea64 commit 77c2e5f

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

src/pages/ComingSoon.tsx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import React, { useState, useEffect } from 'react';
2+
import { FaRocket, FaBell } from 'react-icons/fa';
3+
const ComingSoon = () => {
4+
const target = new Date('2025-06-01').getTime();
5+
const [time, setTime] = useState({ days: 0, hours: 0, minutes: 0, seconds: 0 });
6+
useEffect(() => { const t = setInterval(() => { const diff = target - Date.now(); setTime({ days: Math.floor(diff / 86400000), hours: Math.floor((diff % 86400000) / 3600000), minutes: Math.floor((diff % 3600000) / 60000), seconds: Math.floor((diff % 60000) / 1000) }); }, 1000); return () => clearInterval(t); }, []);
7+
return (
8+
<div className='min-h-screen bg-gradient-to-br from-gray-900 to-blue-900 flex items-center justify-center px-4'>
9+
<div className='text-center text-white max-w-lg'>
10+
<FaRocket className='text-6xl mx-auto mb-6 text-yellow-400' />
11+
<h1 className='text-5xl font-bold mb-4'>Coming Soon</h1>
12+
<p className='text-xl text-gray-300 mb-10'>Something amazing is in development. Stay tuned!</p>
13+
<div className='grid grid-cols-4 gap-4 mb-10'>
14+
{[['Days', time.days], ['Hours', time.hours], ['Minutes', time.minutes], ['Seconds', time.seconds]].map(([label, val]) => (
15+
<div key={String(label)} className='bg-white/10 backdrop-blur-sm rounded-2xl p-4'>
16+
<p className='text-3xl font-bold'>{String(val).padStart(2, '0')}</p>
17+
<p className='text-xs text-gray-400 mt-1'>{String(label)}</p>
18+
</div>
19+
))}
20+
</div>
21+
<button className='px-8 py-3 bg-blue-600 hover:bg-blue-700 rounded-xl font-bold flex items-center gap-2 mx-auto'><FaBell />Notify Me</button>
22+
</div>
23+
</div>
24+
);
25+
};
26+
export default ComingSoon;

0 commit comments

Comments
 (0)