'use client';

import type { CSSProperties } from 'react';
import { FaClassIcon } from '@/components/icons/FaClassIcon';
import { type ModuleHubIconKey, resolveModuleHubIconClass } from '@/lib/icons/moduleHubIcons';

type HubMenuIconProps = {
    /** Chave semântica do catálogo; strings legadas são aceites até migração completa dos hubs. */
    icon: ModuleHubIconKey | string;
    className?: string;
    size?: number;
    style?: CSSProperties;
    spin?: boolean;
};

/** Ícone de hub/cartão: chave semântica → Lucide (via `FaClassIcon`). */
export function HubMenuIcon({ icon, className, size, style, spin }: HubMenuIconProps) {
    return (
        <FaClassIcon
            icon={resolveModuleHubIconClass(icon as ModuleHubIconKey)}
            className={className}
            size={size}
            style={style}
            spin={spin}
        />
    );
}
