Abo-Angebote im Ticketsystem: Sammelliste, neues Angebot, Kunden-Reiter Abo & Angebote

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-02 03:05:12 +00:00
1 parent 109aef6805
commit 281c49d406
7 files changed
+321 -1

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
import { useState } from 'react'
import { FaPlus } from 'react-icons/fa6'
import { Button } from '../ui'
import OfferList from './OfferList'
import OfferForm from './OfferForm'
// Abo-Angebote: Meldung, "Neues Angebot", Formular und Liste. Sammelliste (ohne customerId) und Kunden-Reiter.
export default function OffersView({ customerId, customerName }) {
const [message, setMessage] = useState('')
const [showForm, setShowForm] = useState(false)
const [reloadKey, setReloadKey] = useState(0)
const reload = () => setReloadKey((k) => k + 1)
return (
<div>
{message && <div className="area-message">{message}</div>}
{!showForm && (
<div style={{ marginBottom: 12 }}>
<Button variant="primary" onClick={() => { setMessage(''); setShowForm(true) }}><FaPlus /> Neues Angebot</Button>
</div>
)}
{showForm && (
<div style={{ marginBottom: 16 }}>
<OfferForm
fixedCustomerId={customerId}
fixedCustomerName={customerName}
onCreated={(text) => { setMessage(text); setShowForm(false); reload() }}
onCancel={() => setShowForm(false)}
/>
</div>
)}
<OfferList customerId={customerId} reloadKey={reloadKey} onMessage={setMessage} onChanged={reload} />
</div>
)
}