import React, { useState } from 'react'; import { MOCK_PROJECTS } from '../constants'; import { Project } from '../types'; import { Icons } from '../components/IconSet'; interface ProjectsProps { onSelectProject?: (id: string) => void; } const StatusBadge = ({ status, hiring }: { status: Project['status'], hiring: boolean }) => { const styles = { 'active': 'bg-accentInfo/10 text-accentInfo border-accentInfo/20', 'recruiting': 'bg-accentSuccess/10 text-accentSuccess border-accentSuccess/20', 'private': 'bg-textMuted/10 text-textMuted border-textMuted/20', 'completed': 'bg-textMuted/10 text-textMuted border-textMuted/20', }; const labels = { 'active': 'Aktives Geschäft', 'recruiting': 'Offener Story-Arc', 'private': 'Privat / Versteckt', 'completed': 'Archiviert' }; return (
{labels[status]} {hiring && ( Stellen )}
); }; const VentureCard = ({ project, onClick }: { project: Project, onClick?: () => void }) => (
{/* Background accent for certain types */} {project.category === 'Black Market' && (
)}
{project.category}

{project.title}

Inhaber
{project.owner}

{project.description}

{/* Reputation / Progress Bar */}
{project.category === 'Story Arc' ? 'Story Fortschritt' : 'Ruf'} {project.progress}%
{project.employees.length} Mitglieder
{project.shopCatalog && project.shopCatalog.length > 0 && (
Shop
)} {project.foundedDate && Gegr. {project.foundedDate}}
); const Projects: React.FC = ({ onSelectProject }) => { const [filter, setFilter] = useState<'all' | Project['status']>('all'); const filteredProjects = MOCK_PROJECTS.filter(p => filter === 'all' ? true : p.status === filter ); const tabs = [ { id: 'all', label: 'Alle Unternehmen' }, { id: 'active', label: 'Aktive Firmen' }, { id: 'recruiting', label: 'Story Arcs' }, { id: 'private', label: 'Privat' }, ]; return (

Unternehmen & Projekte

Spielergeführte Firmen, aktive Rollenspiel-Stränge und Dienstleister.

{/* Filter Tabs */}
{tabs.map(tab => ( ))}
{/* Grid */}
{filteredProjects.map(project => ( onSelectProject && onSelectProject(project.id)} /> ))}
{filteredProjects.length === 0 && (

Keine Unternehmen in dieser Kategorie gefunden.

)}
); }; export default Projects;