Skip to content

Commit da1e68f

Browse files
authored
Updated FeaturedClubCard.tsx
1 parent 8dc983a commit da1e68f

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

src/components/FeaturedClubCard.tsx

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,36 @@ const FeaturedClubCard = ({
123123
{/* Special handling for EcoFlow product carousel */}
124124
{club.name === 'Δ EcoFlow' && section.title === 'Eco Products Catalog' ? <div className="mt-4">
125125
<EcoProductCarousel />
126-
</div> : <div className="flex flex-wrap gap-2">
127-
{section.platforms.sort((a, b) => a.name.localeCompare(b.name)).map((platform, pIndex) => <Button key={pIndex} variant="ghost" size="sm" className={`${section.color} text-white hover:bg-white/20 text-xs h-auto py-2 justify-start font-[Exo]`} onClick={() => platform.url && window.open(platform.url, '_blank')} disabled={!platform.url}>
128-
{platform.icon && <img src={platform.icon} alt={platform.name} className="h-4 w-4 mr-2 flex-shrink-0 rounded" />}
129-
{!platform.icon && <ExternalLink className="h-4 w-4 mr-2 flex-shrink-0" />}
130-
<span className="truncate text-left">{platform.name}</span>
131-
</Button>)}
126+
</div> : <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3">
127+
{section.platforms.sort((a, b) => a.name.localeCompare(b.name)).map((platform, pIndex) => <div key={pIndex} onClick={() => platform.url && window.open(platform.url, '_blank')} className={`${section.color} rounded-lg p-4 hover:bg-white/20 transition-all duration-300 cursor-pointer border border-white/10 hover:border-white/30 hover:scale-105 ${!platform.url && 'opacity-50 cursor-not-allowed'}`}>
128+
{/* Icon container - fixed size */}
129+
<div className="w-12 h-12 mb-3 flex items-center justify-center bg-white/10 rounded-lg overflow-hidden">
130+
{platform.icon ? (
131+
<img
132+
src={platform.icon}
133+
alt={platform.name}
134+
className="w-8 h-8 object-contain"
135+
onError={(e) => {
136+
const target = e.target as HTMLImageElement;
137+
target.style.display = 'none';
138+
const fallback = target.nextElementSibling as HTMLElement;
139+
if (fallback) fallback.classList.remove('hidden');
140+
}}
141+
/>
142+
) : null}
143+
<ExternalLink className={`h-6 w-6 text-white/70 ${platform.icon ? 'hidden' : ''}`} />
144+
</div>
145+
146+
{/* Line 1: Name */}
147+
<h4 className="text-white font-semibold text-sm font-[Exo] mb-1 line-clamp-1">
148+
{platform.name}
149+
</h4>
150+
151+
{/* Line 2: Brief description */}
152+
<p className="text-white/70 text-xs font-[Exo] line-clamp-2 leading-relaxed min-h-[2.5rem]">
153+
{platform.description || 'Crypto platform partner'}
154+
</p>
155+
</div>)}
132156
</div>}
133157
</div>)}
134158
</div>

0 commit comments

Comments
 (0)