'use client' import { useState, useEffect } from 'react' interface UnlockModalProps { isOpen: boolean onClose: () => void } interface ReferralStatus { referralCount: number isUnlocked: boolean referralsNeeded: number referralsRemaining: number } export default function UnlockModal({ isOpen, onClose }: UnlockModalProps) { const [referralStatus, setReferralStatus] = useState(null) const [referralLink, setReferralLink] = useState('') const [loading, setLoading] = useState(true) const [copied, setCopied] = useState(false) useEffect(() => { if (isOpen) { fetchReferralData() } }, [isOpen]) const fetchReferralData = async () => { setLoading(true) try { // Fetch referral status const statusResponse = await fetch('/api/referrals/status', { credentials: 'include', }) const statusData = await statusResponse.json() setReferralStatus(statusData) // Fetch referral link if user is logged in const linkResponse = await fetch('/api/referrals/link', { credentials: 'include', }) if (linkResponse.ok) { const linkData = await linkResponse.json() setReferralLink(linkData.referralLink) } } catch (error) { console.error('Error fetching referral data:', error) } finally { setLoading(false) } } const handleCopyLink = async () => { if (!referralLink) return try { await navigator.clipboard.writeText(referralLink) setCopied(true) setTimeout(() => setCopied(false), 2000) } catch (error) { console.error('Failed to copy link:', error) } } if (!isOpen) return null const status = referralStatus || { referralCount: 0, isUnlocked: false, referralsNeeded: 3, referralsRemaining: 3, } return (
e.stopPropagation()} >

Unlock wholesale prices

{loading ? (

Loading...

) : ( <>
🔒 {status.referralCount} of {status.referralsNeeded} referrals completed

Invite {status.referralsNeeded} friends to sign up.
Once they do, wholesale prices unlock forever.

{referralLink ? (
) : (
Please log in to get your referral link
)}
Friends must sign up to count.
{status.referralsRemaining} referral{status.referralsRemaining !== 1 ? 's' : ''} to go
)}
) }