Refactor: Replace emojis with Lucide React icons

This commit is contained in:
gpt-engineer-app[bot]
2025-09-29 12:36:38 +00:00
parent bb139bd70c
commit d1f32dbf25
14 changed files with 136 additions and 118 deletions

View File

@@ -4,7 +4,7 @@ import { ParkCard } from '@/components/parks/ParkCard';
import { Card, CardContent } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { Star, TrendingUp, Plus, MapPin, Clock, Zap } from 'lucide-react';
import { Star, TrendingUp, Plus, MapPin, Clock, Zap, FerrisWheel, Waves, Theater, Train } from 'lucide-react';
import { MeasurementDisplay } from '@/components/ui/measurement-display';
import { Park, Ride } from '@/types/database';
import { supabase } from '@/integrations/supabase/client';
@@ -81,13 +81,13 @@ export function ContentTabs() {
const getRideIcon = (category: string) => {
switch (category) {
case 'roller_coaster': return '🎢';
case 'water_ride': return '🌊';
case 'dark_ride': return '🎭';
case 'flat_ride': return '🎡';
case 'kiddie_ride': return '🎠';
case 'transportation': return '🚂';
default: return '🎢';
case 'roller_coaster': return <FerrisWheel className="w-6 h-6" />;
case 'water_ride': return <Waves className="w-6 h-6" />;
case 'dark_ride': return <Theater className="w-6 h-6" />;
case 'flat_ride': return <FerrisWheel className="w-6 h-6" />;
case 'kiddie_ride': return <FerrisWheel className="w-6 h-6" />;
case 'transportation': return <Train className="w-6 h-6" />;
default: return <FerrisWheel className="w-6 h-6" />;
}
};
@@ -120,7 +120,7 @@ export function ContentTabs() {
className="w-full h-full object-cover group-hover:scale-110 transition-transform duration-500"
/>
) : (
<div className="text-6xl opacity-50">
<div className="opacity-50 flex items-center justify-center">
{getRideIcon(ride.category)}
</div>
)}
@@ -143,7 +143,7 @@ export function ContentTabs() {
<h3 className="font-bold text-lg group-hover:text-primary transition-colors line-clamp-1">
{ride.name}
</h3>
<span className="text-xl">{getRideIcon(ride.category)}</span>
<span className="flex items-center">{getRideIcon(ride.category)}</span>
</div>
{ride.park?.name && (

View File

@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react';
import { Star, TrendingUp, Award } from 'lucide-react';
import { Star, TrendingUp, Award, Castle, FerrisWheel, Waves, Tent } from 'lucide-react';
import { Card, CardContent } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
@@ -53,10 +53,10 @@ export function FeaturedParks() {
<div className="relative">
{/* Gradient Background */}
<div className="aspect-video bg-gradient-to-br from-primary/20 via-secondary/20 to-accent/20 flex items-center justify-center relative">
<div className="text-6xl opacity-50">
{park.park_type === 'theme_park' ? '🏰' :
park.park_type === 'amusement_park' ? '🎢' :
park.park_type === 'water_park' ? '🏊' : '🎪'}
<div className="opacity-50">
{park.park_type === 'theme_park' ? <Castle className="w-16 h-16" /> :
park.park_type === 'amusement_park' ? <FerrisWheel className="w-16 h-16" /> :
park.park_type === 'water_park' ? <Waves className="w-16 h-16" /> : <Tent className="w-16 h-16" />}
</div>
<div className="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent" />
@@ -88,7 +88,10 @@ export function FeaturedParks() {
<div className="flex items-center justify-between text-sm">
<div className="flex items-center gap-3">
<span className="text-primary font-medium">{park.ride_count} rides</span>
<span className="text-accent font-medium">{park.coaster_count} 🎢</span>
<div className="flex items-center gap-1">
<span className="text-accent font-medium">{park.coaster_count}</span>
<FerrisWheel className="w-3 h-3 text-accent" />
</div>
</div>
<div className="text-xs text-muted-foreground">
{park.review_count} reviews