diff --git a/frontend/src/components/LeadersList.tsx b/frontend/src/components/LeadersList.tsx index 1f98f5e8fb..7d5a42bcc4 100644 --- a/frontend/src/components/LeadersList.tsx +++ b/frontend/src/components/LeadersList.tsx @@ -1,5 +1,6 @@ import { Link } from 'react-router-dom' import { LeadersListProps } from 'types/leaders' +import { TruncatedText } from './TruncatedText' /** * Component that renders a list of project leaders as clickable links. @@ -17,20 +18,20 @@ const LeadersList = ({ leaders }: LeadersListProps) => { const leadersArray = leaders.split(',').map((leader) => leader.trim()) return ( - <> + {leadersArray.map((leader, index) => ( {leader} {index < leadersArray.length - 1 && ', '} ))} - + ) } diff --git a/frontend/src/components/TruncatedText.tsx b/frontend/src/components/TruncatedText.tsx index 1cf1d60efc..1f36506759 100644 --- a/frontend/src/components/TruncatedText.tsx +++ b/frontend/src/components/TruncatedText.tsx @@ -1,12 +1,20 @@ -import { useRef, useEffect, useCallback } from 'react' +import React, { useRef, useEffect, useCallback } from 'react' -export const TruncatedText = ({ text, className = '' }: { text: string; className?: string }) => { +export const TruncatedText = ({ + text, + children, + className = '', +}: { + text?: string + children?: React.ReactNode + className?: string +}) => { const textRef = useRef(null) const checkTruncation = useCallback(() => { const element = textRef.current if (element) { - element.title = text + element.title = text || element.textContent || '' } }, [text]) @@ -31,7 +39,7 @@ export const TruncatedText = ({ text, className = '' }: { text: string; classNam ref={textRef} className={`block overflow-hidden truncate text-ellipsis whitespace-nowrap ${className}`} > - {text} + {text || children} ) } diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx index 76869746e3..cfe3ae2eb5 100644 --- a/frontend/src/pages/Home.tsx +++ b/frontend/src/pages/Home.tsx @@ -28,6 +28,7 @@ import { formatDate, formatDateRange } from 'utils/dateFormatter' import AnimatedCounter from 'components/AnimatedCounter' import ChapterMap from 'components/ChapterMap' import ItemCardList from 'components/ItemCardList' +import LeadersList from 'components/LeadersList' import LoadingSpinner from 'components/LoadingSpinner' import MovingLogos from 'components/LogoCarousel' import Modal from 'components/Modal' @@ -192,15 +193,16 @@ export default function Home() { {formatDate(chapter.createdAt)} -
+
- {chapter.suggestedLocation} +
+ {chapter.leaders.length > 0 && ( -
- - {chapter.leaders.join(', ')} +
+ +
)}
@@ -229,10 +231,11 @@ export default function Home() { {capitalize(project.type)} + {project.leaders.length > 0 && ( -
- - {project.leaders.join(', ')} +
+ +
)}