"use client"; import { useMarriageAdvisorsQuery } from "@/hooks/marriage/use-marriage-advisors"; import Button from "./button"; import NetworkImage from "./network-image"; const FALLBACK_AVATAR = "/assets/images/Avatar Image.png"; export type AdvisorAvatar = { id: string; src: string; }; type AdvisorActionsCardProps = { title: string; description: string; /** Static fallback avatars — used only while the API hasn't responded yet. */ avatars: AdvisorAvatar[]; extraCount: number; getAdvisorLabel: string; getAdvisorHref?: string; onGetAdvisor?: () => void; className?: string; }; export function AdvisorActionsCard({ title, description, avatars: fallbackAvatars, extraCount: fallbackExtraCount, getAdvisorLabel, getAdvisorHref, onGetAdvisor, className, }: AdvisorActionsCardProps) { const { data, isLoading } = useMarriageAdvisorsQuery(); const advisors = data?.results ?? []; // Derive real avatars from API response (pick first 3 with an avatar). const realAvatars: AdvisorAvatar[] = advisors .filter((a) => a.avatar_url) .slice(0, 3) .map((a) => ({ id: a.username, src: a.avatar_url ?? FALLBACK_AVATAR, })); const displayAvatars = realAvatars.length > 0 ? realAvatars : fallbackAvatars; // Show total remaining advisors (capped at advisor count minus shown avatars). const displayExtraCount = advisors.length > 0 ? Math.max(0, advisors.length - displayAvatars.length) : fallbackExtraCount; return (

{title}

{description}

{isLoading ? /* ── Shimmer circles while API loads ── */ Array.from({ length: 3 }).map((_, i) => ( )) : displayAvatars.map((avatar) => ( ))} {!isLoading && displayExtraCount > 0 && ( +{displayExtraCount} )}
); } export default AdvisorActionsCard;