feat: wire admin workflows to real APIs

This commit is contained in:
hectorzhao
2026-07-02 13:50:09 +08:00
parent f8c9b78c21
commit ab421cf8a7
42 changed files with 2596 additions and 250 deletions
+4 -4
View File
@@ -154,7 +154,7 @@ function SignatureForm({ signature }: { signature?: SignatureItem }) {
export function ClientSignaturesPage() {
const [signatures, setSignatures] = useState(initialSignatures);
const [keyword, setKeyword] = useState('');
const [expandedId, setExpandedId] = useState('sig-1');
const [expandedId, setExpandedId] = useState('');
const [signatureModal, setSignatureModal] = useState<{ mode: 'add' | 'edit'; signature?: SignatureItem } | null>(null);
const [editingDrainage, setEditingDrainage] = useState<{ signature: SignatureItem; drainage?: DrainageInfo } | null>(null);
@@ -228,7 +228,7 @@ export function ClientSignaturesPage() {
</div>
<div className="signature-actions">
<Button icon={<Edit3 size={16} />} onClick={() => setSignatureModal({ mode: 'edit', signature })} size="sm" variant="ghost"></Button>
<Button icon={<Trash2 size={16} />} onClick={() => deleteSignature(signature.id)} size="sm" variant="ghost"></Button>
<Button icon={<Trash2 size={16} />} onClick={() => deleteSignature(signature.id)} size="sm" variant="danger"></Button>
</div>
</div>
@@ -254,8 +254,8 @@ export function ClientSignaturesPage() {
<Tag tone={statusToneMap[item.telecom]}>{statusLabelMap[item.telecom]}</Tag>
<span className="muted">{item.submittedAt}</span>
<span className="drainage-row-actions">
<button onClick={() => setEditingDrainage({ signature, drainage: item })} type="button"></button>
<button onClick={() => deleteDrainage(signature.id, item.id)} type="button"></button>
<Button onClick={() => setEditingDrainage({ signature, drainage: item })} size="sm" variant="ghost"></Button>
<Button onClick={() => deleteDrainage(signature.id, item.id)} size="sm" variant="danger"></Button>
</span>
</div>
))}