"use client"; import { useState, useEffect } from "react"; import { motion } from "framer-motion"; import Loader from "../components/Loader"; import { useTechPartners } from "../services/techPartners"; import { assetUrl } from "../services/api"; import type { ThemeProps } from "../types"; function PartnersInner({ isNavyBg }: ThemeProps) { const { data, isLoading } = useTechPartners(); const bg = isNavyBg ? "#071233" : "#f7f6f3"; const border = isNavyBg ? "rgba(255,255,255,0.07)" : "rgba(0,0,0,0.07)"; const label = isNavyBg ? "rgba(255,255,255,0.28)" : "rgba(0,0,0,0.28)"; const partners = (data ?? []).filter((p) => p.isActive && p.logoUrl).sort((a, b) => a.displayOrder - b.displayOrder); if (isLoading) { return ( ); } if (partners.length === 0) return null; return ( Partners tecnológicos {partners.map((p, i) => { const inner = ( { (e.currentTarget as HTMLImageElement).style.filter = "grayscale(0)"; (e.currentTarget as HTMLImageElement).style.opacity = "1"; }} onMouseLeave={(e) => { (e.currentTarget as HTMLImageElement).style.filter = "grayscale(1)"; (e.currentTarget as HTMLImageElement).style.opacity = "0.55"; }} /> ); return ( {p.websiteUrl ? {inner} : inner} ); })} ); } export const Partners = (props: ThemeProps) => { const [mounted, setMounted] = useState(false); useEffect(() => setMounted(true), []); if (!mounted) return null; return ; };
Partners tecnológicos