'use client' import React, { useState } from 'react' import { useSDK } from '@/lib/sdk' import type { ProjectInfo, CustomerType } from '@/lib/sdk/types' /** Map snake_case backend response to camelCase ProjectInfo */ export function normalizeProject(p: any): ProjectInfo { return { id: p.id, name: p.name, description: p.description || '', customerType: p.customerType || p.customer_type || 'new', status: p.status || 'active', projectVersion: p.projectVersion ?? p.project_version ?? 1, completionPercentage: p.completionPercentage ?? p.completion_percentage ?? 0, createdAt: p.createdAt || p.created_at || '', updatedAt: p.updatedAt || p.updated_at || '', } } interface CreateProjectDialogProps { open: boolean onClose: () => void onCreated: (project: ProjectInfo) => void existingProjects: ProjectInfo[] } export function CreateProjectDialog({ open, onClose, onCreated, existingProjects }: CreateProjectDialogProps) { const { createProject } = useSDK() const [name, setName] = useState('') const [customerType, setCustomerType] = useState('new') const [copyFromId, setCopyFromId] = useState('') const [isSubmitting, setIsSubmitting] = useState(false) const [error, setError] = useState('') if (!open) return null const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!name.trim()) { setError('Projektname ist erforderlich') return } setIsSubmitting(true) setError('') try { const project = await createProject( name.trim(), customerType, copyFromId || undefined ) onCreated(normalizeProject(project)) setName('') setCopyFromId('') onClose() } catch (err) { setError(err instanceof Error ? err.message : 'Fehler beim Erstellen des Projekts') } finally { setIsSubmitting(false) } } return (
e.stopPropagation()} >

Neues Projekt erstellen

setName(e.target.value)} placeholder="z.B. KI-Produkt X, SaaS API, Tochter GmbH..." className="w-full px-4 py-2.5 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500 outline-none" autoFocus />
{existingProjects.length > 0 && (

Firmenprofil wird kopiert und kann dann unabhaengig bearbeitet werden.

)} {error && (
{error}
)}
) }