"use client"; import { use } from "react"; import { useRouter } from "next/navigation"; import { Navbar } from "@/components/navbar"; import { Footer } from "@/components/footer"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Separator } from "@/components/ui/separator"; import { mockJobs } from "@/lib/mock-data"; import { MapPin, Briefcase, DollarSign, Calendar, ArrowLeft, CheckCircle2, Building2, Users, Clock, Heart, Share2, Bookmark, Star, Globe, } from "lucide-react"; import Link from "next/link"; import { useState } from "react"; import { motion } from "framer-motion"; export const runtime = 'edge'; export default function JobDetailPage({ params, }: { params: Promise<{ id: string }>; }) { const { id } = use(params); const router = useRouter(); const [isFavorited, setIsFavorited] = useState(false); const [isBookmarked, setIsBookmarked] = useState(false); const job = mockJobs.find((j) => j.id === id); if (!job) { return (

Vaga não encontrada

A vaga que você está procurando não existe ou foi removida.

); } const getCompanyInitials = (company: string) => { return company .split(" ") .map((word) => word[0]) .join("") .toUpperCase() .slice(0, 2); }; const formatTimeAgo = (dateString: string) => { const date = new Date(dateString); const now = new Date(); const diffInMs = now.getTime() - date.getTime(); const diffInDays = Math.floor(diffInMs / (1000 * 60 * 60 * 24)); if (diffInDays === 0) return "Hoje"; if (diffInDays === 1) return "Ontem"; if (diffInDays < 7) return `${diffInDays} dias atrás`; if (diffInDays < 30) return `${Math.floor(diffInDays / 7)} semanas atrás`; return `${Math.floor(diffInDays / 30)} meses atrás`; }; const getTypeLabel = (type: string) => { const typeLabels: { [key: string]: string } = { "full-time": "Tempo integral", "part-time": "Meio período", contract: "Contrato", Remoto: "Remoto", }; return typeLabels[type] || type; }; const mockCompanyInfo = { size: "100-500 funcionários", industry: "Tecnologia", founded: "2015", website: "www.empresa.com", rating: 4.5, }; return (
{/* Breadcrumb */}
{/* Main Content */}
{/* Job Header */}
{getCompanyInitials(job.company)}
{job.title}
{job.company}
{mockCompanyInfo.rating}
{/* Action buttons mobile */}
{/* Job Meta */}
{job.location}
{getTypeLabel(job.type)}
{job.salary && (
{job.salary}
)}
{formatTimeAgo(job.postedAt)}
{/* Apply Button - Mobile */}
{/* Job Description */} Sobre a vaga

{job.description}

{/* Requirements */} Requisitos
{job.requirements.map((req, index) => (
{req}
))}
{/* Company Info */} Sobre a empresa

{job.company} é uma empresa líder no mercado, comprometida em criar um ambiente de trabalho inclusivo e inovador. Oferecemos benefícios competitivos e oportunidades de crescimento profissional.

Tamanho

{mockCompanyInfo.size}

Setor

{mockCompanyInfo.industry}

Fundada

{mockCompanyInfo.founded}

{/* Sidebar */}
{/* Apply Card - Desktop */} Interessado na vaga? Candidate-se agora e faça parte da nossa equipe!
Tipo de vaga: {getTypeLabel(job.type)}
Localização: {job.location}
{job.salary && (
Salário: {job.salary}
)}
Publicado: {formatTimeAgo(job.postedAt)}
{/* Similar Jobs */} Vagas similares {mockJobs .filter((j) => j.id !== job.id) .slice(0, 3) .map((similarJob) => (

{similarJob.title}

{similarJob.company}

{similarJob.location}
))}
); }