'use client' import React from 'react' import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@/components/ui/card' import { Label } from '@/components/ui/label' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { User, Building2, UserPlus, Search, Check, Loader2, ChevronRight } from 'lucide-react' import { EndCustomer, Profile } from '@/lib/types' interface StepCustomerProps { isAdmin: boolean companies: any[] selectedCompanyId: string | null setSelectedCompanyId: (id: string | null) => void customerMode: 'select' | 'create' setCustomerMode: (mode: 'select' | 'create') => void endCustomers: EndCustomer[] searchTerm: string setSearchTerm: (term: string) => void filteredEndCustomers: EndCustomer[] selectedEndCustomerId: string | null setSelectedEndCustomerId: (id: string | null) => void newCustomerForm: any setNewCustomerForm: React.Dispatch> handleCreateCustomer: () => Promise isCreatingCustomer: boolean nextStep: () => void } export function StepCustomer({ isAdmin, companies, selectedCompanyId, setSelectedCompanyId, customerMode, setCustomerMode, endCustomers, searchTerm, setSearchTerm, filteredEndCustomers, selectedEndCustomerId, setSelectedEndCustomerId, newCustomerForm, setNewCustomerForm, handleCreateCustomer, isCreatingCustomer, nextStep, }: StepCustomerProps) { return ( Für wen bestellen Sie? Wählen Sie einen Endkunden aus oder legen Sie einen neuen an. {/* Admin Company Selector */} {isAdmin && (
)} {/* Modus-Toggle */}
{/* Modus A: Bestandskunde wählen */} {customerMode === 'select' && (
{endCustomers.filter(c => !c.is_anonymized).length === 0 ? (

Noch keine Endkunden angelegt.

) : (
setSearchTerm(e.target.value)} className="pl-9 bg-white/5 border-white/10 text-white placeholder:text-slate-500" />
{filteredEndCustomers.length === 0 ? (

Keine passenden Kunden gefunden.

) : (
{filteredEndCustomers.map(customer => ( ))}
)}
)}
)} {/* Modus B: Neuen Kunden anlegen */} {customerMode === 'create' && (
{([ { label: 'Firmenname *', key: 'company_name', span: true, placeholder: 'GmbH / Einzelunternehmen' }, { label: 'USt-IdNr.', key: 'vat_id', span: false, placeholder: 'DE123456789' }, { label: 'Vorname', key: 'first_name', span: false, placeholder: '' }, { label: 'Nachname', key: 'last_name', span: false, placeholder: '' }, { label: 'Straße & Hausnummer', key: 'street', span: true, placeholder: '' }, { label: 'PLZ', key: 'zip', span: false, placeholder: '' }, { label: 'Ort', key: 'city', span: false, placeholder: '' }, { label: 'Kontoinhaber', key: 'bank_owner', span: false, placeholder: 'Max Mustermann' }, { label: 'IBAN', key: 'bank_iban', span: false, placeholder: 'DE89370400440532013000' }, { label: 'BIC', key: 'bank_bic', span: false, placeholder: 'SOLADE21XXX' }, { label: 'Bankname', key: 'bank_name', span: false, placeholder: 'Musterbank' }, ] as const).map(({ label, key, span, placeholder }) => (
setNewCustomerForm((prev: any) => ({ ...prev, [key]: e.target.value }))} placeholder={placeholder} className="bg-white/5 border-white/10 text-white placeholder:text-slate-500" />
))}
)}
) }