"use client"; import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { Search } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; export function PersuasiveCTA() { const [query, setQuery] = useState(""); const [searchType, setSearchType] = useState<"barcode" | "name" | null>(null); const router = useRouter(); // Detectar tipo de busca em tempo real useEffect(() => { const cleaned = query.replace(/\D/g, ""); // Remove tudo que não é número if (cleaned.length >= 8 && cleaned.length <= 13) { setSearchType("barcode"); } else if (query.trim()) { setSearchType("name"); } else { setSearchType(null); } }, [query]); const handleSearch = () => { if (!query.trim()) return; const type = detectSearchType(query); if (type === "barcode") { // Limpar código de barras (remover espaços/caracteres) const cleanBarcode = query.replace(/\D/g, ""); if (isValidBarcode(cleanBarcode)) { // Redirecionar para página do produto router.push(`/produto/${cleanBarcode}`); } else { // Mostrar erro de código inválido alert("Código de barras inválido. Deve ter entre 8 e 13 dígitos."); } } else { // Busca normal por nome router.push(`/resultados?q=${encodeURIComponent(query.trim())}`); } }; const handleKeyPress = (e: React.KeyboardEvent) => { if (e.key === "Enter") { handleSearch(); } }; // Funções auxiliares (copiadas do SearchBar) const detectSearchType = (input: string): "barcode" | "name" => { const cleaned = input.replace(/\D/g, ""); return cleaned.length >= 8 && cleaned.length <= 13 ? "barcode" : "name"; }; const isValidBarcode = (barcode: string): boolean => { return barcode.length >= 8 && barcode.length <= 13 && /^\d+$/.test(barcode); }; return (

Pronto para descobrir a verdade sobre seus alimentos?

Junte-se a milhares de pessoas que já tomam decisões alimentares mais conscientes com informações transparentes e confiáveis.

{/* Contador Animado de Usuários */}
12.847 pessoas já buscaram hoje
{/* Search Bar Destacado */}
setQuery(e.target.value)} onKeyPress={handleKeyPress} className="pl-10 pr-4 h-12 text-gray-900" /> {/* Indicador visual do tipo de busca */} {searchType && (
{searchType === "barcode" ? "Código de barras" : "Nome"}
)}

💡 Dica: O código de barras está na parte de trás da embalagem

{/* Trust Indicators */}
✓ Sem cadastro necessário ✓ Resultados instantâneos ✓ 100% gratuito
); }