import {
  ArrowRight,
  BookOpen,
  CheckCircle2,
  GraduationCap,
  Heart,
  Puzzle,
  School,
  Star,
  Users,
} from 'lucide-react';
import type { LucideIcon } from 'lucide-react';

import type { EsaIconId } from '@/shared/types/esaFunding';

const ESA_ICONS: Record<EsaIconId, LucideIcon> = {
  school: School,
  heart: Heart,
  book: BookOpen,
  puzzle: Puzzle,
  graduation: GraduationCap,
  users: Users,
  arrow: ArrowRight,
  check: CheckCircle2,
  star: Star,
};

interface EsaFundingIconProps {
  readonly iconId: EsaIconId;
  readonly size: number;
}

export function EsaFundingIcon({ iconId, size }: EsaFundingIconProps) {
  const Icon = ESA_ICONS[iconId];

  return <Icon size={size} />;
}
