From f98c648311bdde875542efefb3831680fa150ba4 Mon Sep 17 00:00:00 2001 From: Evandro Fonseca Junior Date: Mon, 12 Jan 2026 19:55:50 -0300 Subject: [PATCH] feat(footer, header, landing): enhance UI components and improve navigation - Updated Footer component with new links and dynamic year display. - Refactored Header component to improve mobile navigation and theme toggling. - Enhanced DonationSection and Features components with improved layout and animations. - Updated HowItWorks and Impact sections for better user engagement and clarity. - Improved product page layout and error handling in API interactions. - General UI refinements across various components for a cohesive user experience. --- app/components/Footer.tsx | 238 +- app/components/header.tsx | 218 +- app/components/landing/DonationSection.tsx | 173 +- app/components/landing/Features.tsx | 142 +- app/components/landing/Hero.tsx | 431 +- app/components/landing/HowItWorks.tsx | 291 +- app/produto/[barcode]/page.tsx | 481 +- app/sobre/components/CTASection.tsx | 231 +- app/sobre/components/HowItWorksSection.tsx | 317 +- app/sobre/components/ImpactSection.tsx | 305 +- app/sobre/components/MissionSection.tsx | 229 +- app/sobre/components/StorySection.tsx | 289 +- .../components/TargetAudienceSection.tsx | 281 +- app/sobre/components/ValuesSection.tsx | 331 +- data/products-cache.json | 10789 ++-------------- hooks/use-geolocation.ts | 29 + hooks/use-search-logic.ts | 25 + lib/openFoodFactsApi.ts | 590 +- public/images/nut-facts.webp | Bin 0 -> 25598 bytes public/images/nutscore.webp | Bin 0 -> 12252 bytes public/manifest.json | 2 +- 21 files changed, 3335 insertions(+), 12057 deletions(-) create mode 100644 hooks/use-geolocation.ts create mode 100644 hooks/use-search-logic.ts create mode 100644 public/images/nut-facts.webp create mode 100644 public/images/nutscore.webp diff --git a/app/components/Footer.tsx b/app/components/Footer.tsx index 26f9c84..8189799 100644 --- a/app/components/Footer.tsx +++ b/app/components/Footer.tsx @@ -1,3 +1,8 @@ +"use client"; + +import React from "react"; +import Link from "next/link"; +import Image from "next/image"; import { ExternalLink, Github, @@ -5,171 +10,144 @@ import { Globe, Shield, ScanLine, + Database, + Lock, } from "lucide-react"; +const FOOTER_LINKS = { + navigation: [ + { href: "/#como-funciona", label: "Protocolo" }, + { href: "/#recursos", label: "Recursos" }, + { href: "/sobre", label: "Sobre o Projeto" }, + { href: "/produto/exemplo", label: "Sandbox (Exemplo)" }, + ], + resources: [ + { icon: Shield, label: "Dados Colaborativos" }, + { icon: Globe, label: "Rede Global" }, + { icon: ScanLine, label: "Algoritmo de Busca" }, + ], +}; + export function Footer() { + const currentYear = new Date().getFullYear(); + return ( -