import React, { useState } from 'react'; import { Organization, Project, Player } from '../types'; import { MOCK_PLAYERS, MOCK_PROJECTS } from '../constants'; import { Icons } from '../components/IconSet'; interface CityProfileProps { city: Organization; onBack: () => void; backLabel?: string; onSelectPlayer: (id: string) => void; onSelectProject: (id: string) => void; } const CityProfile: React.FC = ({ city, onBack, backLabel = 'Zurück', onSelectPlayer, onSelectProject }) => { const [activeTab, setActiveTab] = useState<'overview' | 'residents' | 'ventures'>('overview'); const residents = MOCK_PLAYERS.filter(p => p.stats.organizationId === city.id); const ventures = MOCK_PROJECTS.filter(p => p.associatedOrgId === city.id); return (
{/* Hero Header */}
{city.name}
{city.establishedYear && (
GEGR. {city.establishedYear}
)}

{city.name}

{city.memberCount} Mitglieder
{city.status}
{city.mayor && (
Aktueller Anführer
{city.mayor}
)}
{/* Navigation Tabs */}
{/* Content Area */}
{activeTab === 'overview' && (

Über {city.name}

{city.description}

{city.gallery && city.gallery.length > 0 && (

Bildarchiv

{city.gallery.map((url, idx) => (
{`Gallery
))}
)}
{city.cityStats && (

Stadt-Statistiken

{/* Tax Rate */}
Steuersatz
{city.cityStats.taxRate}%
Pro Transaktion
{/* Defense */}
Verteidigungswert
{city.cityStats.defenseRating}/10
{/* Gov Type */}
Regierungsform
{city.cityStats.government}
{/* Biome */}
Biom {city.cityStats.biome}
Spezialität {city.cityStats.specialty}
)}
)} {activeTab === 'residents' && (
{residents.map(player => (
onSelectPlayer(player.uuid)} className="bg-surface border border-border p-4 rounded-xl flex items-center gap-4 hover:border-accentInfo/50 transition-colors cursor-pointer group hover:shadow-card hover:bg-surfaceHighlight/30" >
{player.username.charAt(0)}
{player.username}
{player.stats.role}
))} {residents.length === 0 &&
Keine Bewohner öffentlich registriert.
}
)} {activeTab === 'ventures' && (
{ventures.map(project => (
onSelectProject(project.id)} className="bg-surface border border-border rounded-xl p-5 hover:border-accentInfo/50 transition-all cursor-pointer group hover:shadow-card hover:bg-surfaceHighlight/30" >
{project.category} {project.hiring && ( STELLEN )}

{project.title}

{project.description}

Geführt von {project.owner}
{project.progress}% Fortschr.
))} {ventures.length === 0 &&
Keine aktiven Unternehmen in dieser Organisation.
}
)}
); }; export default CityProfile;