feat(F-048): completed feature

This commit is contained in:
chattie
2026-08-19 07:17:14 +02:00
parent 8ee1938af9
commit 835ab66eda
187 changed files with 12361 additions and 1065 deletions

View File

@@ -101,7 +101,7 @@ export function Footer() {
{/* Bottom bar */}
<div className="mt-10 pt-6 flex flex-col sm:flex-row justify-between items-center gap-4" style={{ borderTop: '1px solid rgba(255,255,255,0.1)' }}>
<p className="text-xs" style={{ color: 'rgba(232,245,224,0.4)' }}>
© 2026 MercadoDeVida. Todos los derechos reservados.
© 2026 mercadodevida. Todos los derechos reservados.
</p>
<div className="flex items-center gap-4">
<a href="https://instagram.com/mercadodevida/" target="_blank" rel="noopener" aria-label="Instagram"

View File

@@ -120,13 +120,7 @@ export function Header() {
};
useEffect(() => {
if (!q.trim()) {
setResults([]);
setSuggestions([]);
setShowDropdown(false);
setSearching(false);
return;
}
if (!q.trim()) return;
if (debounceRef.current) clearTimeout(debounceRef.current);
debounceRef.current = setTimeout(() => {
loadResults(q.trim());
@@ -146,6 +140,16 @@ export function Header() {
return () => document.removeEventListener('mousedown', handler);
}, []);
const handleSearchChange = (value: string) => {
setQ(value);
if (!value.trim()) {
setResults([]);
setSuggestions([]);
setShowDropdown(false);
setSearching(false);
}
};
const handleSuggestionClick = (term: string) => {
setQ(term);
setShowDropdown(false);
@@ -168,7 +172,7 @@ export function Header() {
<Link href="/" className="flex items-center shrink-0">
<Image
src="/images/logo-main.png"
alt="MercadoDeVida"
alt="mercadodevida"
width={56}
height={56}
className="h-14 w-auto object-contain"
@@ -183,7 +187,7 @@ export function Header() {
<input
type="search"
value={q}
onChange={(e) => setQ(e.target.value)}
onChange={(e) => handleSearchChange(e.target.value)}
onFocus={() => { if (q.trim() && (results.length > 0 || suggestions.length > 0)) setShowDropdown(true); }}
placeholder="Buscar productos, marcas..."
className="w-full pl-10 pr-10 py-2.5 border border-gray-200 rounded-full text-sm