import React, { useState, useEffect } from 'react'; import { Check, ChevronRight, Star, Share2, Send, Copy, Smartphone, Shield, Award, TrendingUp, Users, ArrowRight, Loader2, Lock, X } from 'lucide-react'; export default function AprilFoolsPrank() { const [step, setStep] = useState(1); const [formData, setFormData] = useState({ name: '', email: '', phone: '', upiId: '' }); const [tasksComplete, setTasksComplete] = useState({ share: 0, survey: false, finance: false }); const [showTerms, setShowTerms] = useState(false); const [termsAccepted, setTermsAccepted] = useState(false); const [selectedBank, setSelectedBank] = useState(''); const [processing, setProcessing] = useState(false); const [loadingStep, setLoadingStep] = useState(0); const [activityItems, setActivityItems] = useState([ { name: 'Priya S.', action: 'earned ₹150', time: '2m ago', emoji: '🎉' }, { name: 'Vikram R.', action: 'completed tasks', time: 'Just now', emoji: '✅' }, { name: 'Neha K.', action: 'withdrew ₹300', time: '5m ago', emoji: '💸' }, ]); // Live activity feed updater useEffect(() => { if (step === 3) { const interval = setInterval(() => { const names = ['Rahul K.', 'Anjali M.', 'Rohan P.', 'Sneha T.', 'Arjun S.', 'Divya L.']; const actions = [ { text: 'earned ₹150', emoji: '🎉' }, { text: 'completed verification', emoji: '✅' }, { text: 'withdrew ₹250', emoji: '💸' }, { text: 'joined today', emoji: '🌟' } ]; const randomName = names[Math.floor(Math.random() * names.length)]; const randomAction = actions[Math.floor(Math.random() * actions.length)]; setActivityItems(prev => [ { name: randomName, action: randomAction.text, time: 'Just now', emoji: randomAction.emoji }, ...prev.slice(0, 4) ]); }, 4000); return () => clearInterval(interval); } }, [step]); const handleShare = (platform) => { if (tasksComplete.share < 3) { const message = "Bro check this app, I just earned ₹150! 🎉 https://earn150.app"; if (platform === 'whatsapp') { // Only count after attempting to open WhatsApp const whatsappWindow = window.open(`https://wa.me/?text=${encodeURIComponent(message)}`, '_blank'); if (whatsappWindow) { // Successfully opened - count it setTasksComplete(prev => ({ ...prev, share: prev.share + 1 })); } } else if (platform === 'telegram') { const telegramWindow = window.open(`https://t.me/share/url?url=${encodeURIComponent('https://earn150.app')}&text=${encodeURIComponent(message)}`, '_blank'); if (telegramWindow) { setTasksComplete(prev => ({ ...prev, share: prev.share + 1 })); } } else if (platform === 'copy') { navigator.clipboard.writeText(message); setTasksComplete(prev => ({ ...prev, share: prev.share + 1 })); } } }; // Custom confetti function const triggerConfetti = () => { const colors = ['#00A651', '#FFD700', '#FF6B6B', '#4ECDC4', '#9B59B6']; const confettiCount = 150; for (let i = 0; i < confettiCount; i++) { const confetti = document.createElement('div'); confetti.className = 'confetti-piece'; confetti.style.left = Math.random() * 100 + 'vw'; confetti.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)]; confetti.style.animationDelay = Math.random() * 3 + 's'; confetti.style.animationDuration = (Math.random() * 3 + 2) + 's'; document.body.appendChild(confetti); setTimeout(() => confetti.remove(), 5000); } }; const handleProcessing = async () => { setProcessing(true); const steps = [ 'Connecting to NPCI...', 'Verifying UPI handle...', 'Initiating transfer...', 'Updating wallet balance...' ]; for (let i = 0; i < steps.length; i++) { setLoadingStep(i); await new Promise(resolve => setTimeout(resolve, 1200)); } // Trigger confetti triggerConfetti(); setStep(6); setProcessing(false); }; const progressPercentage = step === 1 ? 0 : step === 2 ? 20 : step === 3 ? 60 : step === 4 ? 85 : step === 5 ? 95 : 100; // Step 1: Landing Page if (step === 1) { return (
{/* Header */}
EarnPay
10L+ Users
{/* Hero Section */}
Trending #1 in Finance

Refer & Earn
₹150 Instantly!

Join lakhs of Indians earning money daily. No investment. 100% genuine.

{/* Trust Badges */}
ISO Certified
RBI Approved*
Bank Grade Security
{/* Testimonials */}

What Our Users Say

{[ { name: 'Priya S.', location: 'Mumbai', text: 'Earned ₹450 last week! Instant transfer to my account.', rating: 5 }, { name: 'Rahul M.', location: 'Delhi', text: 'Best earning app ever. Received money within seconds!', rating: 5 }, { name: 'Anjali K.', location: 'Bangalore', text: 'Totally genuine. Already referred 10 friends!', rating: 5 } ].map((testimonial, idx) => (
{testimonial.name[0]}
{testimonial.name}
{testimonial.location}
{[...Array(testimonial.rating)].map((_, i) => ( ))}

{testimonial.text}

))}
{/* Fine Print */}

*Promotional offer valid only on April 1st, 2026. Subject to terms and conditions.

); } // Step 2: Registration if (step === 2) { return (
{/* Header */}

Create Your Account

Enter your details to start earning

{/* Form */}
setFormData({ ...formData, name: e.target.value })} className="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-emerald-500 focus:ring-2 focus:ring-emerald-500/20 outline-none transition-all" />
setFormData({ ...formData, email: e.target.value })} className="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-emerald-500 focus:ring-2 focus:ring-emerald-500/20 outline-none transition-all" />
Your data is safe
256-bit encryption • No spam • Instant deletion on request
setTermsAccepted(e.target.checked)} className="mt-1 w-5 h-5 text-emerald-600 border-gray-300 rounded focus:ring-emerald-500" />

Already have an account?{' '}

{/* Terms Modal */} {showTerms && (

Terms of Service & Privacy Policy

1. User Agreement

By accessing and using EarnPay ("the Service"), you agree to be bound by these Terms of Service. The Service provides a platform for users to participate in referral programs and earn rewards through legitimate promotional activities.

2. Eligibility

You must be at least 18 years of age to use this Service. By using the Service, you represent and warrant that you have the right, authority, and capacity to enter into this agreement and to abide by all terms and conditions herein.

3. Account Registration

To access certain features of the Service, you may be required to register for an account. You agree to provide accurate, current, and complete information during the registration process and to update such information to keep it accurate, current, and complete.

4. Payment and Rewards

Rewards are subject to verification and compliance with program rules. The Company reserves the right to withhold, delay, or cancel any rewards if fraud, violation of terms, or suspicious activity is detected. Payment processing may take 3-7 business days.

5. Data Collection and Privacy

We collect and process personal information in accordance with our Privacy Policy. This includes but is not limited to name, email address, phone number, payment information, and usage data. We may share anonymized data with third-party partners for analytics purposes.

6. User Conduct

You agree not to use the Service for any unlawful purpose or in any way that interrupts, damages, or impairs the Service. Prohibited activities include but are not limited to fraudulent referrals, automated signups, account manipulation, or any form of abuse.

7. Intellectual Property

All content, features, and functionality of the Service are owned by the Company and are protected by international copyright, trademark, patent, trade secret, and other intellectual property laws.

8. Disclaimer of Warranties

THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. WE DO NOT WARRANT THAT THE SERVICE WILL BE UNINTERRUPTED, ERROR-FREE, OR FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.

9. Limitation of Liability

IN NO EVENT SHALL THE COMPANY BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES ARISING OUT OF OR RELATED TO YOUR USE OF THE SERVICE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

10. Indemnification

You agree to defend, indemnify, and hold harmless the Company and its affiliates from any claims, liabilities, damages, losses, and expenses arising out of or in any way connected with your access to or use of the Service.

11. Termination

We reserve the right to terminate or suspend your account and access to the Service at our sole discretion, without notice, for conduct that we believe violates these Terms or is harmful to other users, us, or third parties.

12. Miscellaneous Provisions

These Terms constitute the entire agreement between you and the Company regarding the Service. If any provision is found to be unenforceable, the remaining provisions will remain in full effect. Our failure to enforce any right or provision shall not be considered a waiver.

IMPORTANT NOTICE: This is a demonstration application created for entertainment purposes only, specifically for April Fool's Day 2026. No personal data submitted through this application is collected, stored, transmitted to any server, or used for any purpose whatsoever. All processing occurs locally in your browser. This promotional offer is valid exclusively on April 1st, 2026, and no actual monetary rewards or payments will be issued. By continuing to use this application, you acknowledge that you understand this is a novelty entertainment experience and not a genuine financial services platform.

13. Governing Law and Arbitration

These Terms shall be governed by and construed in accordance with the laws of India, without regard to conflict of law provisions. Any disputes shall be resolved through binding arbitration in accordance with the Arbitration and Conciliation Act, 1996.

14. Contact Information

For questions about these Terms, please contact us at legal@earnpay.app or write to us at EarnPay Legal Department, 123 Finance Street, Mumbai 400001, India.

Last updated: April 1, 2026

)}
); } // Step 3: Dashboard if (step === 3) { return (
{/* Header */}
Welcome back,
Live

{formData.name || 'User'}

{/* Earnings Card */}
Available Balance
₹150.00
Unlock Progress {progressPercentage}%
{/* Task CTA */} {/* Live Activity Feed */}

Live Activity

Real-time
{activityItems.map((item, idx) => (
{item.name[0]}
{item.name}
{item.action}
{item.emoji} {item.time}
))}
{/* Stats Grid */}
{[ { label: 'Total Users', value: '10L+', icon: Users }, { label: 'Paid Out', value: '₹50Cr+', icon: TrendingUp }, { label: 'Trust Score', value: '4.8★', icon: Award } ].map((stat, idx) => (
{stat.value}
{stat.label}
))}
); } // Step 4: Tasks if (step === 4) { const allTasksComplete = tasksComplete.share >= 3 && tasksComplete.survey && tasksComplete.finance; return (
{/* Header */}

Complete Tasks

3 simple steps to unlock ₹150

{/* Progress */}
Overall Progress {tasksComplete.share >= 3 && tasksComplete.survey && tasksComplete.finance ? '100%' : tasksComplete.share >= 3 && tasksComplete.survey ? '85%' : tasksComplete.share >= 3 ? '60%' : `${tasksComplete.share * 20}%`}
= 3 && tasksComplete.survey && tasksComplete.finance ? '100%' : tasksComplete.share >= 3 && tasksComplete.survey ? '85%' : tasksComplete.share >= 3 ? '60%' : `${tasksComplete.share * 20}%` }} />
{/* Task 1: Share */}
= 3 ? 'bg-emerald-500' : 'bg-gray-100'}`}> {tasksComplete.share >= 3 ? ( ) : ( )}

Share with Friends

Help us grow! Share with 3 friends

{tasksComplete.share}/3
{tasksComplete.share < 3 && (
)} {tasksComplete.share > 0 && tasksComplete.share < 3 && (
{[...Array(3)].map((_, idx) => (
))}
)}
{/* Task 2: Survey */}
{tasksComplete.survey ? ( ) : ( )}

Quick Survey

Answer 3 simple questions

{!tasksComplete.survey ? (
{[1, 2, 3, 4, 5].map((star) => ( ))}
) : (
✓ Survey completed
)}
{/* Task 3: Financial Details */}
{tasksComplete.finance ? ( ) : ( )}

Financial Details

For KYC & RBI compliance

{!tasksComplete.finance ? (
Required for regulatory compliance