"use client"; import Image from "next/image"; import { useEffect, useState } from "react"; import { filterCurrentSponsors, filterSpecialSponsors, sortSpecialSponsors, } from "@/lib/sponsor-utils"; import type { Sponsor } from "@/lib/types"; export function SpecialSponsorBanner() { const [specialSponsors, setSpecialSponsors] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { fetch("https://sponsors.amanv.dev/sponsors.json") .then((res) => { if (!res.ok) throw new Error("Failed to fetch sponsors"); return res.json(); }) .then((data) => { const sponsorsData = Array.isArray(data) ? data : []; const currentSponsors = filterCurrentSponsors(sponsorsData); const specials = sortSpecialSponsors( filterSpecialSponsors(currentSponsors), ); setSpecialSponsors(specials); setLoading(false); }) .catch(() => { setLoading(false); }); }, []); if (loading) { return (
); } if (!specialSponsors.length) { return null; } return (
{specialSponsors.map((sponsor) => ( {sponsor.sponsor.name

{sponsor.sponsor.name || sponsor.sponsor.login}

))}
); }