"use client"; import React, { type SVGProps } from 'react' import { IconBaseProps, IconType } from 'react-icons'; import { FaRegIdCard, FaStethoscope } from "react-icons/fa"; import { LuLayoutDashboard, LuClipboardList } from "react-icons/lu"; import { IoDocumentsOutline } from "react-icons/io5"; import { BsClipboardCheck } from "react-icons/bs"; import { TbProgress } from "react-icons/tb"; interface iconMapType { [key: string]: IconType } const iconMap: iconMapType = { FaRegIdCard: FaRegIdCard, FaStethoscope: FaStethoscope, LuLayoutDashboard: LuLayoutDashboard, LuClipboardList: LuClipboardList, IoDocumentsOutline: IoDocumentsOutline, BsClipboardCheck: BsClipboardCheck, TbProgress: TbProgress }; type DynamicIconProps = IconBaseProps & { iconName: string; size?: number; }; // interface DynamicIconProps { // iconName: string; // }; const DynamicIcon: React.FC = ({ iconName, ...props }) => { const IconComponent = iconMap[iconName]; if (!IconComponent) { console.warn(`Icon "${iconName}" not found in iconMap.`); return null; // Or render a fallback icon } return React.createElement(IconComponent, props); }; export default DynamicIcon;