'use client' import { useState } from 'react' import { useParams } from 'next/navigation' import { Component } from './_components/types' import { ComponentTreeNode } from './_components/ComponentTreeNode' import { ComponentForm } from './_components/ComponentForm' import { ComponentLibraryModal } from './_components/ComponentLibraryModal' import { useComponents } from './_hooks/useComponents' export default function ComponentsPage() { const params = useParams() const projectId = params.projectId as string const { loading, tree, handleSubmit, handleDelete, handleAddFromLibrary } = useComponents(projectId) const [showForm, setShowForm] = useState(false) const [editingComponent, setEditingComponent] = useState(null) const [addingParentId, setAddingParentId] = useState(null) const [showLibrary, setShowLibrary] = useState(false) function handleEdit(component: Component) { setEditingComponent(component) setAddingParentId(null) setShowForm(true) } function handleAddChild(parentId: string) { setAddingParentId(parentId) setEditingComponent(null) setShowForm(true) } function resetForm() { setShowForm(false) setEditingComponent(null) setAddingParentId(null) } if (loading) { return (
) } return (
{/* Header */}

Komponenten

Erfassen Sie alle Software-, Firmware-, KI- und Hardware-Komponenten der Maschine.

{!c.showForm && (
)}
{showLibrary && ( { setShowLibrary(false); await handleAddFromLibrary(comps, energy) }} onClose={() => setShowLibrary(false)} /> )} {showForm && ( { const ok = await handleSubmit(data, editingComponent?.id) if (ok) resetForm() }} onCancel={resetForm} initialData={editingComponent} parentId={addingParentId} /> )} {c.tree.length > 0 ? (
Typ Name Beschreibung Aktionen
{c.tree.map((component) => ( ))}
) : ( !c.showForm && (

Keine Komponenten erfasst

Beginnen Sie mit der Erfassung aller relevanten Komponenten Ihrer Maschine. Erstellen Sie eine hierarchische Struktur aus Software, Firmware, KI-Modulen und Hardware.

) )}
) }