import React from 'react'; import {AchievementDetails, AchievementIconRecord} from '../types'; import { Styles } from '../defaultStyles'; import { defaultAchievementIcons } from '../assets/defaultIcons'; interface BadgesModalProps { isOpen: boolean; achievements: AchievementDetails[]; onClose: () => void; styles: Styles['badgesModal']; icons?: Record; } const BadgesModal: React.FC = ({ isOpen, achievements, onClose, styles, icons = {} }) => { if (!isOpen) return null; return (
e.stopPropagation()} >
{achievements.length > 0 ? ( achievements.map((achievement) => { const mergedIcons: AchievementIconRecord = { ...defaultAchievementIcons, ...icons }; let iconToDisplay: string | undefined = mergedIcons.default; if (achievement.achievementIconKey && mergedIcons[achievement.achievementIconKey]) { iconToDisplay = mergedIcons[achievement.achievementIconKey]; } return (
{iconToDisplay.startsWith('http') || iconToDisplay.startsWith('data:image') ? ( {achievement.achievementTitle} ) : (

{iconToDisplay}

)} {achievement.achievementTitle} {achievement.achievementDescription}
); }) ) : (

No achievements yet. Keep exploring!

)}
); }; export default React.memo(BadgesModal);