import React, { useState } from 'react'; import Layout from './components/Layout'; import Dashboard from './pages/Dashboard'; import PlayerProfile from './pages/PlayerProfile'; import SetupGuide from './pages/SetupGuide'; import Projects from './pages/Projects'; import Organizations from './pages/Organizations'; import Cities from './pages/Cities'; import CityProfile from './pages/CityProfile'; import ProjectProfile from './pages/ProjectProfile'; import DatapackGenerator from './pages/DatapackGenerator'; import { MOCK_PLAYERS, MOCK_ORGS, MOCK_PROJECTS } from './constants'; import { Icons } from './components/IconSet'; function App() { const [activeTab, setActiveTab] = useState('dashboard'); const [selectedPlayerId, setSelectedPlayerId] = useState(null); const [selectedCityId, setSelectedCityId] = useState(null); const [selectedProjectId, setSelectedProjectId] = useState(null); const [selectedOrgId, setSelectedOrgId] = useState(null); const handleNavigate = (tab: string) => { setActiveTab(tab); if (tab !== 'players') setSelectedPlayerId(null); if (tab !== 'cities') setSelectedCityId(null); if (tab !== 'projects') setSelectedProjectId(null); if (tab !== 'organizations') setSelectedOrgId(null); }; // Helper to jump to a player from another view const navigateToPlayer = (id: string) => { setSelectedPlayerId(id); setActiveTab('players'); }; // Helper to jump to a project from another view const navigateToProject = (id: string) => { setSelectedProjectId(id); setActiveTab('projects'); }; // Helper to jump to an org/city const navigateToOrg = (id: string) => { const org = MOCK_ORGS.find(o => o.id === id); if (org?.type === 'City') { setSelectedCityId(id); setActiveTab('cities'); } else { setSelectedOrgId(id); setActiveTab('organizations'); } }; const renderContent = () => { if (activeTab === 'dashboard') return ; if (activeTab === 'projects') { if (selectedProjectId) { const project = MOCK_PROJECTS.find(p => p.id === selectedProjectId); if (project) return ( setSelectedProjectId(null)} onSelectPlayer={navigateToPlayer} onSelectOrg={navigateToOrg} /> ); } return ; } if (activeTab === 'organizations') { if (selectedOrgId) { const org = MOCK_ORGS.find(o => o.id === selectedOrgId); if (org) return ( setSelectedOrgId(null)} backLabel="Zurück zum Verzeichnis" onSelectPlayer={navigateToPlayer} onSelectProject={navigateToProject} /> ); } return ; } if (activeTab === 'setup') return ; if (activeTab === 'datapack') return ; if (activeTab === 'cities') { if (selectedCityId) { const city = MOCK_ORGS.find(o => o.id === selectedCityId); if (city) return ( setSelectedCityId(null)} backLabel="Zurück zu Städte" onSelectPlayer={navigateToPlayer} onSelectProject={navigateToProject} /> ); } return ; } if (activeTab === 'players') { if (selectedPlayerId) { const player = MOCK_PLAYERS.find(p => p.uuid === selectedPlayerId); if (player) return setSelectedPlayerId(null)} />; } return (

Bürgerverzeichnis

{MOCK_PLAYERS.map(player => (
setSelectedPlayerId(player.uuid)} className="group bg-surface border border-border p-4 rounded-xl cursor-pointer hover:border-accentInfo/50 transition-all duration-200 hover:shadow-card" >
{player.username}
{player.tags.slice(0, 2).map(t => {t})}
))}
); } return (

Modul {activeTab} wird derzeit gewartet.

); }; return ( {renderContent()} ); } export default App;