From 5c7b2c791cbd9f96a076ea40879133c03ae0d9d1 Mon Sep 17 00:00:00 2001 From: GoHorse Deploy Date: Mon, 9 Feb 2026 11:10:59 +0000 Subject: [PATCH] feat(frontend): apply HML layout with carousel arrows to dev --- frontend/src/app/page.tsx | 347 +++++++++++++++++--------------------- 1 file changed, 154 insertions(+), 193 deletions(-) diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 0606d76..4b8a7ae 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -1,79 +1,23 @@ -'use client' +"use client" -import { useState, useCallback, useEffect } from 'react' -import { Button } from '@/components/ui/button' -import { Input } from '@/components/ui/input' -import { Search, MapPin, Briefcase, TrendingUp, ChevronLeft, ChevronRight, Star, Globe, Zap, Users, Heart } from 'lucide-react' -import Link from 'next/link' -import Image from 'next/image' -import { Footer } from '@/components/footer' -import { Navbar } from '@/components/navbar' +import { useState, useCallback, useEffect } from "react" +import { Button } from "@/components/ui/button" +import { mockJobs } from "@/lib/mock-data" +import Link from "next/link" +import { ArrowRight, CheckCircle2, ChevronLeft, ChevronRight } from 'lucide-react' +import Image from "next/image" +import { motion } from "framer-motion" +import { useTranslation } from "@/lib/i18n" +import { Navbar } from "@/components/navbar" +import { Footer } from "@/components/footer" +import { HomeSearch } from "@/components/home-search" +import { JobCard } from "@/components/job-card" import useEmblaCarousel from 'embla-carousel-react' -const mockJobs = [ - { - id: 1, - title: 'Senior Full Stack Developer', - company: 'TechCorp', - location: 'São Paulo, SP', - type: 'Tiempo completo', - salary: 'R$ 12,000 - R$ 18,000', - description: 'We are looking for an experienced full stack developer to lead...', - tags: ['React', 'Node.js', 'TypeScript'], - logo: 'https://api.dicebear.com/7.x/initials/svg?seed=TC', - posted: 'hace 3 meses' - }, - { - id: 2, - title: 'UX/UI Designer', - company: 'DesignHub', - location: 'São Paulo, SP', - type: 'Remoto', - salary: 'R$ 8,000 - R$ 12,000', - description: 'We are looking for a creative designer to craft incredible...', - tags: ['Figma', 'Adobe XD', 'Strong portfolio'], - logo: 'https://api.dicebear.com/7.x/initials/svg?seed=DH', - posted: 'hace 3 meses' - }, - { - id: 3, - title: 'Data Engineer', - company: 'DataFlow', - location: 'Rio de Janeiro, RJ', - type: 'Tiempo completo', - salary: 'R$ 15,000 - R$ 22,000', - description: 'Opportunity to work with big data and machine learning.', - tags: ['Python', 'SQL', 'Spark'], - logo: 'https://api.dicebear.com/7.x/initials/svg?seed=DF', - posted: 'hace 3 meses' - }, - { - id: 4, - title: 'Product Manager', - company: 'InnovateLab', - location: 'Belo Horizonte, MG', - type: 'Tiempo completo', - salary: 'R$ 10,000 - R$ 16,000', - description: 'Lead the development of innovative digital products.', - tags: ['Product management', 'Agile', 'Data analysis'], - logo: 'https://api.dicebear.com/7.x/initials/svg?seed=IL', - posted: 'hace 3 meses' - }, - { - id: 5, - title: 'Backend Developer', - company: 'CloudScale', - location: 'Florianópolis, SC', - type: 'Remoto', - salary: 'R$ 11,000 - R$ 17,000', - description: 'Scale our cloud infrastructure to millions of users.', - tags: ['Go', 'Kubernetes', 'AWS'], - logo: 'https://api.dicebear.com/7.x/initials/svg?seed=CS', - posted: 'hace 2 meses' - } -] - export default function Home() { + const { t } = useTranslation() + + // Embla Carousel for Latest Jobs const [emblaRef, emblaApi] = useEmblaCarousel({ align: 'start', loop: false, @@ -106,146 +50,163 @@ export default function Home() { }, [emblaApi, onSelect]) return ( -
+
-
+ +
{/* Hero Section */} -
-
-
- Hero Background +
+ {/* Background Image with Overlay */} +
+ Background +
-
-
-

- Encontre seu próximo desafio na tecnologia -

-

- Conectamos os melhores talentos às empresas mais inovadoras do Brasil e do exterior. -

+
+
+ + Encontre a Vaga de TI
+ dos Seus Sonhos. +
-
- - -
-
- {[1, 2, 3, 4].map((i) => ( -
- Avatar -
- ))} + +
+
+
+ + {/* Search Section */} +
+
+ +
+
+ + {/* Latest Jobs Section - WITH CAROUSEL */} +
+
+
+

+ Últimas Vagas Cadastradas +

+
+ + +
+
+ +
+
+ {mockJobs.slice(0, 8).map((job, index) => ( +
+
- - +500 talentos já contratados - -
+ ))}
- {/* Latest Jobs Section */} -
-
-
-
-

Últimas Vagas Cadastradas

-
-
-
-
- - -
- - Ver todas - -
+ {/* More Jobs Section */} +
+
+
+

+ Mais Vagas +

+ + +
-
-
- {mockJobs.map((job, index) => ( -
-
-
-
- {job.company} -
- -
+
+ {mockJobs.slice(0, 8).map((job, index) => ( + + ))} +
+
+
-
-

- {job.title} -

-
- - {job.company} -
-
-
- - {job.location} -
-
-
- {job.type} -
- {job.salary} -
-
+ {/* Bottom CTA Section */} +
+
+
-

- {job.description} -

+ {/* Content */} +
+

+ Milhares de oportunidades
esperam você. +

+

+ Conecte cargos, talentos, tomada de ações de vagas. +

+ + + +
-
- {job.tags.map((tag) => ( - - {tag} - - ))} -
-
- -
-
- - {job.posted} -
- - - -
-
-
- ))} + {/* Image Background for CTA */} +
+
+ Professional + {/* Gradient Overlay to blend with dark background */} +
+