'use client'; import { useState, useEffect } from 'react'; import Link from 'next/link'; import { useLanguage } from '@/context/LanguageContext'; import { eventsApi, Event } from '@/lib/api'; import { formatPrice } from '@/lib/utils'; import { CalendarIcon, MapPinIcon, ChatBubbleLeftRightIcon, } from '@heroicons/react/24/outline'; export default function LinktreePage() { const { t, locale } = useLanguage(); const [nextEvent, setNextEvent] = useState(null); const [loading, setLoading] = useState(true); // Social links from environment variables const whatsappLink = process.env.NEXT_PUBLIC_WHATSAPP; const instagramHandle = process.env.NEXT_PUBLIC_INSTAGRAM; const telegramHandle = process.env.NEXT_PUBLIC_TELEGRAM; const tiktokHandle = process.env.NEXT_PUBLIC_TIKTOK; useEffect(() => { eventsApi.getNextUpcoming() .then(({ event }) => setNextEvent(event)) .catch(console.error) .finally(() => setLoading(false)); }, []); const formatDate = (dateStr: string) => { return new Date(dateStr).toLocaleDateString(locale === 'es' ? 'es-ES' : 'en-US', { weekday: 'short', month: 'short', day: 'numeric', }); }; const formatTime = (dateStr: string) => { return new Date(dateStr).toLocaleTimeString(locale === 'es' ? 'es-ES' : 'en-US', { hour: '2-digit', minute: '2-digit', }); }; // Handle both full URLs and handles const instagramUrl = instagramHandle ? (instagramHandle.startsWith('http') ? instagramHandle : `https://instagram.com/${instagramHandle.replace('@', '')}`) : null; const telegramUrl = telegramHandle ? (telegramHandle.startsWith('http') ? telegramHandle : `https://t.me/${telegramHandle.replace('@', '')}`) : null; const tiktokUrl = tiktokHandle ? (tiktokHandle.startsWith('http') ? tiktokHandle : `https://www.tiktok.com/@${tiktokHandle.replace('@', '')}`) : null; return (
{/* Profile Header */}

Spanglish

{t('linktree.tagline')}

{/* Next Event Card */}

{t('linktree.nextEvent')}

{loading ? (
) : nextEvent ? (

{locale === 'es' && nextEvent.titleEs ? nextEvent.titleEs : nextEvent.title}

{formatDate(nextEvent.startDatetime)} • {formatTime(nextEvent.startDatetime)}
{nextEvent.location}
{nextEvent.price === 0 ? t('events.details.free') : formatPrice(nextEvent.price, nextEvent.currency)} {!nextEvent.externalBookingEnabled && ( {nextEvent.availableSeats} {t('events.details.spotsLeft')} )}
{t('linktree.moreInfo')}
) : (

{t('linktree.noEvents')}

)}
{/* Social Links */}

{t('linktree.joinCommunity')}

{/* WhatsApp */} {whatsappLink && (

{t('linktree.whatsapp.title')}

{t('linktree.whatsapp.subtitle')}

)} {/* Telegram */} {telegramUrl && (

{t('linktree.telegram.title')}

{t('linktree.telegram.subtitle')}

)} {/* Instagram */} {instagramUrl && (

{t('linktree.instagram.title')}

{t('linktree.instagram.subtitle')}

)} {/* TikTok */} {tiktokUrl && (

{t('linktree.tiktok.title')}

{t('linktree.tiktok.subtitle')}

)}
{/* Website Link */}
{t('linktree.visitWebsite')}
{/* Footer */}

{t('footer.copyright', { year: new Date().getFullYear().toString() })}

); }