import React from 'react'; import { IonIcon } from '@ionic/react'; import { medkitOutline, flashOutline, phonePortraitOutline, chevronForwardOutline, } from 'ionicons/icons'; import momImage from '../assets/mom.jpg'; import dadImage from '../assets/dad.jpg'; import basketIcon from '../assets/basket.png'; interface ActivityListItemProps { id: string; eventType: string; title: string; subtitle: string; amount?: number; statusText?: string; statusTone?: 'success' | 'warning' | 'partial'; avatarLabel?: string; avatarTone?: string; avatarImage?: string; onClick?: (id: string) => void; onStatusClick?: () => void; } const ActivityListItem: React.FC = ({ id, eventType, title, subtitle, amount, statusText, statusTone = 'warning', avatarLabel, avatarTone = 'brand', avatarImage, onClick, onStatusClick, }) => { const getIconAndColor = () => { if ( eventType.includes('grocery') || title.toLowerCase().includes('grocer') ) { return { iconSrc: basketIcon, badgeClass: 'grocery', }; } if ( eventType.includes('medication') || title.toLowerCase().includes('medic') ) { return { icon: medkitOutline, badgeClass: 'medication', }; } if ( eventType.includes('airtime') || title.toLowerCase().includes('airtime') ) { return { icon: phonePortraitOutline, badgeClass: 'airtime', }; } return { icon: flashOutline, badgeClass: 'electricity', }; }; const { icon, iconSrc, badgeClass } = getIconAndColor(); const avatarSearchText = `${title} ${subtitle} ${avatarLabel ?? ''}`.toLowerCase(); const resolvedAvatar = avatarImage ?? (avatarSearchText.includes('mum') || avatarSearchText.includes('mom') ? momImage : avatarSearchText.includes('dad') || avatarSearchText.includes('father') ? dadImage : undefined); return ( )} ); }; export default ActivityListItem;