'use client';

import { useState, useEffect } from 'react';
import Link from 'next/link';
import Image from 'next/image';
import { useLanguage } from '@/context/LanguageContext';
import { eventsApi, Event } from '@/lib/api';
import { formatPrice, formatDateShort, formatTime } from '@/lib/utils';
import { 
  CalendarIcon, 
  MapPinIcon,
} from '@heroicons/react/24/outline';

export default function LinktreePage() {
  const { t, locale } = useLanguage();
  const [nextEvent, setNextEvent] = useState<Event | null>(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 }) => {
        if (event) {
          const endTime = event.endDatetime || event.startDatetime;
          if (new Date(endTime).getTime() <= Date.now()) {
            setNextEvent(null);
            return;
          }
        }
        setNextEvent(event);
      })
      .catch(console.error)
      .finally(() => setLoading(false));
  }, []);

  const formatDate = (dateStr: string) => formatDateShort(dateStr, locale as 'en' | 'es');
  const fmtTime = (dateStr: string) => formatTime(dateStr, locale as 'en' | 'es');

  // 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 (
    <div className="min-h-screen" style={{ background: 'linear-gradient(to bottom, #002F44, #001a28, #002F44)' }}>
      <div className="max-w-md mx-auto px-4 py-8 pb-16">
        {/* Profile Header */}
        <div className="text-center mb-8">
          <div className="w-24 h-24 mx-auto rounded-full overflow-hidden flex items-center justify-center mb-4 shadow-lg bg-white">
            <Image src="/images/spanglish-icon.png" alt="Spanglish" width={96} height={96} className="object-contain" />
          </div>
          <h1 className="text-2xl font-bold text-white">Spanglish</h1>
          <p className="text-gray-400 mt-1">{t('linktree.tagline')}</p>
        </div>

        {/* Next Event Card */}
        <div className="mb-6">
          <h2 className="text-sm font-semibold text-primary-yellow uppercase tracking-wider mb-3 text-center">
            {t('linktree.nextEvent')}
          </h2>
          
          {loading ? (
            <div
              className="bg-white/10 backdrop-blur-sm rounded-2xl p-5 border border-white/10 animate-pulse"
              role="status"
              aria-busy="true"
            >
              <span className="sr-only">Loading…</span>
              <div className="h-6 w-2/3 rounded-lg bg-white/15" />
              <div className="mt-3 space-y-2">
                <div className="h-4 w-3/4 rounded-lg bg-white/15" />
                <div className="h-4 w-1/2 rounded-lg bg-white/15" />
              </div>
              <div className="mt-4 flex items-center justify-between">
                <div className="h-5 w-20 rounded-lg bg-white/15" />
                <div className="h-4 w-24 rounded-lg bg-white/15" />
              </div>
              <div className="mt-4 h-12 rounded-xl bg-white/15" />
            </div>
          ) : nextEvent ? (
            <Link href={`/events/${nextEvent.slug}`} className="block group">
              <div className="bg-white/10 backdrop-blur-sm rounded-2xl p-5 border border-white/10 transition-all duration-300 hover:bg-white/15 hover:scale-[1.02] hover:shadow-xl">
                <h3 className="font-bold text-lg text-white group-hover:text-primary-yellow transition-colors">
                  {locale === 'es' && nextEvent.titleEs ? nextEvent.titleEs : nextEvent.title}
                </h3>
                
                <div className="mt-3 space-y-2">
                  <div className="flex items-center gap-2 text-gray-300 text-sm">
                    <CalendarIcon className="w-4 h-4 text-primary-yellow flex-shrink-0" />
                    <span>{formatDate(nextEvent.startDatetime)} • {fmtTime(nextEvent.startDatetime)}</span>
                  </div>
                  <div className="flex items-center gap-2 text-gray-300 text-sm">
                    <MapPinIcon className="w-4 h-4 text-primary-yellow flex-shrink-0" />
                    <span className="truncate">{nextEvent.location}</span>
                  </div>
                </div>

                <div className="mt-4 flex items-center justify-between">
                  <span className="font-bold text-primary-yellow">
                    {nextEvent.price === 0 
                      ? t('events.details.free')
                      : formatPrice(nextEvent.price, nextEvent.currency)}
                  </span>
                  {!nextEvent.externalBookingEnabled && (
                    <span className="text-sm text-gray-400">
                      {nextEvent.availableSeats} {t('events.details.spotsLeft')}
                    </span>
                  )}
                </div>

                <div className="mt-4 bg-primary-yellow text-primary-dark font-semibold py-3 px-4 rounded-xl text-center transition-all duration-200 group-hover:bg-yellow-400">
                  {t('linktree.moreInfo')}
                </div>
              </div>
            </Link>
          ) : (
            <div className="bg-white/10 backdrop-blur-sm rounded-2xl p-6 text-center text-gray-400">
              <CalendarIcon className="w-10 h-10 mx-auto mb-2 opacity-50" />
              <p>{t('linktree.noEvents')}</p>
            </div>
          )}
        </div>

        {/* Social Links */}
        <div className="space-y-3">
          <h2 className="text-sm font-semibold text-primary-yellow uppercase tracking-wider mb-3 text-center">
            {t('linktree.joinCommunity')}
          </h2>

          {/* WhatsApp */}
          {whatsappLink && (
            <a 
              href={whatsappLink} 
              target="_blank" 
              rel="noopener noreferrer"
              className="flex items-center gap-4 bg-white/10 backdrop-blur-sm rounded-2xl p-4 border border-white/10 transition-all duration-300 hover:bg-[#25D366]/20 hover:border-[#25D366]/30 hover:scale-[1.02] group"
            >
              <div className="w-12 h-12 bg-[#25D366] rounded-xl flex items-center justify-center flex-shrink-0">
                <svg className="w-6 h-6 text-white" fill="currentColor" viewBox="0 0 24 24">
                  <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/>
                </svg>
              </div>
              <div className="flex-1 min-w-0">
                <p className="font-semibold text-white group-hover:text-[#25D366] transition-colors">
                  {t('linktree.whatsapp.title')}
                </p>
                <p className="text-sm text-gray-400">{t('linktree.whatsapp.subtitle')}</p>
              </div>
              <svg className="w-5 h-5 text-gray-400 group-hover:text-[#25D366] transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
              </svg>
            </a>
          )}

          {/* Telegram */}
          {telegramUrl && (
            <a 
              href={telegramUrl} 
              target="_blank" 
              rel="noopener noreferrer"
              className="flex items-center gap-4 bg-white/10 backdrop-blur-sm rounded-2xl p-4 border border-white/10 transition-all duration-300 hover:bg-[#0088cc]/20 hover:border-[#0088cc]/30 hover:scale-[1.02] group"
            >
              <div className="w-12 h-12 bg-[#0088cc] rounded-xl flex items-center justify-center flex-shrink-0">
                <svg className="w-6 h-6 text-white" fill="currentColor" viewBox="0 0 24 24">
                  <path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/>
                </svg>
              </div>
              <div className="flex-1 min-w-0">
                <p className="font-semibold text-white group-hover:text-[#0088cc] transition-colors">
                  {t('linktree.telegram.title')}
                </p>
                <p className="text-sm text-gray-400">{t('linktree.telegram.subtitle')}</p>
              </div>
              <svg className="w-5 h-5 text-gray-400 group-hover:text-[#0088cc] transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
              </svg>
            </a>
          )}

          {/* Instagram */}
          {instagramUrl && (
            <a 
              href={instagramUrl} 
              target="_blank" 
              rel="noopener noreferrer"
              className="flex items-center gap-4 bg-white/10 backdrop-blur-sm rounded-2xl p-4 border border-white/10 transition-all duration-300 hover:bg-[#E4405F]/20 hover:border-[#E4405F]/30 hover:scale-[1.02] group"
            >
              <div className="w-12 h-12 bg-gradient-to-br from-[#833AB4] via-[#E4405F] to-[#FCAF45] rounded-xl flex items-center justify-center flex-shrink-0">
                <svg className="w-6 h-6 text-white" fill="currentColor" viewBox="0 0 24 24">
                  <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"/>
                </svg>
              </div>
              <div className="flex-1 min-w-0">
                <p className="font-semibold text-white group-hover:text-[#E4405F] transition-colors">
                  {t('linktree.instagram.title')}
                </p>
                <p className="text-sm text-gray-400">{t('linktree.instagram.subtitle')}</p>
              </div>
              <svg className="w-5 h-5 text-gray-400 group-hover:text-[#E4405F] transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
              </svg>
            </a>
          )}

          {/* TikTok */}
          {tiktokUrl && (
            <a 
              href={tiktokUrl} 
              target="_blank" 
              rel="noopener noreferrer"
              className="flex items-center gap-4 bg-white/10 backdrop-blur-sm rounded-2xl p-4 border border-white/10 transition-all duration-300 hover:bg-white/20 hover:border-white/30 hover:scale-[1.02] group"
            >
              <div className="w-12 h-12 bg-black rounded-xl flex items-center justify-center flex-shrink-0">
                <svg className="w-6 h-6 text-white" fill="currentColor" viewBox="0 0 24 24">
                  <path d="M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 6.34 0 0 0 10.86-4.43v-7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1-.1z"/>
                </svg>
              </div>
              <div className="flex-1 min-w-0">
                <p className="font-semibold text-white group-hover:text-white transition-colors">
                  {t('linktree.tiktok.title')}
                </p>
                <p className="text-sm text-gray-400">{t('linktree.tiktok.subtitle')}</p>
              </div>
              <svg className="w-5 h-5 text-gray-400 group-hover:text-white transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
              </svg>
            </a>
          )}
        </div>

        {/* Website Link */}
        <div className="mt-6">
          <Link 
            href="/"
            className="flex items-center justify-center gap-2 bg-primary-yellow text-primary-dark font-semibold py-4 px-6 rounded-2xl transition-all duration-300 hover:bg-yellow-400 hover:scale-[1.02]"
          >
            <span>{t('linktree.visitWebsite')}</span>
            <svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
              <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
            </svg>
          </Link>
        </div>

        {/* Footer */}
        <div className="mt-8 text-center">
          <p className="text-gray-500 text-sm">
            {t('footer.copyright', { year: new Date().getFullYear().toString() })}
          </p>
        </div>
      </div>
    </div>
  );
}
