"use client" import { Navbar } from "@/components/navbar" import { Footer } from "@/components/footer" import { JobCard } from "@/components/job-card" import { Button } from "@/components/ui/button" import { Card, CardContent } from "@/components/ui/card" import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" import { mockJobs, mockTestimonials } from "@/lib/mock-data" import { FileText, CheckCircle, ArrowRight, Building2, Users, ChevronLeft, ChevronRight } from "lucide-react" import Link from "next/link" import { motion } from "framer-motion" import Image from "next/image" import { useTranslation } from "@/lib/i18n" import { useConfig } from "@/contexts/ConfigContext" import { useState, useEffect } from "react" import type { Job } from "@/lib/types" export default function HomePage() { const { t } = useTranslation() const config = useConfig() const [featuredJobs, setFeaturedJobs] = useState([]) const [loading, setLoading] = useState(true) const [featuredIndex, setFeaturedIndex] = useState(0) const [moreJobsIndex, setMoreJobsIndex] = useState(0) useEffect(() => { async function fetchFeaturedJobs() { try { const apiBase = config.apiUrl console.log("[DEBUG] API Base URL:", apiBase) const mapJobs = (jobs: any[]): Job[] => jobs.map((j: any) => ({ id: String(j.id), title: j.title, company: j.companyName || t("jobs.confidential"), location: j.location || t("workMode.remote"), type: j.employmentType || "full-time", salary: j.salaryMin ? `R$ ${j.salaryMin}` : t("jobs.salary.negotiable"), description: j.description, requirements: j.requirements || [], postedAt: j.createdAt, isFeatured: j.isFeatured })) console.log("[DEBUG] Fetching featured jobs from:", `${apiBase}/api/v1/jobs?featured=true&limit=6`) const featuredRes = await fetch(`${apiBase}/api/v1/jobs?featured=true&limit=6`) console.log("[DEBUG] Featured response status:", featuredRes.status) if (!featuredRes.ok) throw new Error("Failed to fetch featured jobs") const featuredData = await featuredRes.json() console.log("[DEBUG] Featured data from API:", featuredData) const featuredList = featuredData.data ? mapJobs(featuredData.data) : [] console.log("[DEBUG] Mapped featured jobs:", featuredList.length, "jobs") if (featuredList.length === 6) { console.log("[DEBUG] Using featured jobs only (6 found)") setFeaturedJobs(featuredList) return } console.log("[DEBUG] Fetching fallback jobs from:", `${apiBase}/api/v1/jobs?limit=6`) const fallbackRes = await fetch(`${apiBase}/api/v1/jobs?limit=6`) console.log("[DEBUG] Fallback response status:", fallbackRes.status) if (!fallbackRes.ok) throw new Error("Failed to fetch fallback jobs") const fallbackData = await fallbackRes.json() console.log("[DEBUG] Fallback data from API:", fallbackData) const fallbackList = fallbackData.data ? mapJobs(fallbackData.data) : [] console.log("[DEBUG] Mapped fallback jobs:", fallbackList.length, "jobs") const combined = [...featuredList, ...fallbackList].slice(0, 6) console.log("[DEBUG] Combined jobs:", combined.length, "jobs") if (combined.length === 6) { console.log("[DEBUG] Using combined jobs (6)") setFeaturedJobs(combined) } else if (combined.length > 0) { console.log("[DEBUG] Using combined jobs (less than 6)") setFeaturedJobs(combined) } else { console.log("[DEBUG] ⚠️ USING MOCK DATA - No API jobs found!") setFeaturedJobs(mockJobs.slice(0, 6)) } } catch (error) { console.error("[DEBUG] ❌ Error fetching featured jobs:", error) console.log("[DEBUG] ⚠️ USING MOCK DATA due to error") setFeaturedJobs(mockJobs.slice(0, 6)) } finally { setLoading(false) } } fetchFeaturedJobs() }, []) return (
{/* Hero Section */}
{/* Desktop */} Background {/* Mobile */} Background
{t('home.hero.title')}
{t('home.hero.titleLine2')}
{t('home.hero.subtitle')}
{/* Search Bar Section */}
{/* Featured Jobs */}

{t('home.featuredJobs.title')}

{(featuredJobs.length >= 8 ? featuredJobs.slice(0, 8) : mockJobs.slice(0, 8)) .slice(featuredIndex, featuredIndex + 4) .map((job, index) => { const dates = ['02/06', '05/06', '08/06', '11/06', '14/06', '17/06', '19/06', '20/06']; const randomDate = dates[(featuredIndex + index) % dates.length]; return (
{/* Conteúdo do card */}

{job.title}

{/* Tags */}
{job.company} {job.location}
{/* Data */}
{randomDate}
{/* Botão */}
)})}
{/* More Jobs Section */}

{t('home.moreJobs.title')}

{(featuredJobs.length >= 12 ? featuredJobs.slice(8, 12) : mockJobs.slice(0, 4)) .map((job, index) => { const dates = ['03/06', '07/06', '10/06', '13/06', '16/06', '18/06']; const randomDate = dates[index % dates.length]; return (
{/* Logo da empresa */}
{/* Informações da vaga */}

{job.title}

{job.company}

{job.location} {job.type}
{randomDate}
)})}
{/* CTA Section */}
Background
{/* Text Content */}
{t('home.cta.badge')}

{t('home.cta.title')}

{t('home.cta.subtitle')}

) }