Stundenkonto und Vorschuss am Einrichtungs-Ticket und beim Kunden
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f0d39f2eee
commit
dce7c3e53a
7 files changed
+154
-2
No files matched your search
@@ -0,0 +1,29 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import { getCustomerStundenkonto } from '../lib/teamApi'
|
||||
|
||||
// { antwort, loading }: Stundenkonto eines Kunden (V8), neu geladen, wenn sich customerId oder reloadKey ändern
|
||||
// (z. B. nach einem neuen Arbeitsblatt). Fehler, auch 404 eines älteren Portals, bleiben still: antwort ist dann null
|
||||
// und nur die Konsole bekommt eine Warnung. Eine Antwort für einen früheren Schlüssel wird verworfen und nie gezeigt.
|
||||
// enabled=false: noch nichts laden.
|
||||
export function useStundenkonto(customerId, { enabled = true, reloadKey = '' } = {}) {
|
||||
const key = `${customerId}|${reloadKey}`
|
||||
const [state, setState] = useState({ key: null, antwort: null })
|
||||
|
||||
useEffect(() => {
|
||||
if (!customerId || !enabled) return undefined
|
||||
let cancelled = false
|
||||
getCustomerStundenkonto(customerId)
|
||||
.then((antwort) => { if (!cancelled) setState({ key, antwort }) })
|
||||
.catch((err) => {
|
||||
console.warn('Stundenkonto des Kunden konnte nicht geladen werden:', err?.message || err)
|
||||
if (!cancelled) setState({ key, antwort: null })
|
||||
})
|
||||
return () => { cancelled = true }
|
||||
}, [customerId, enabled, key])
|
||||
|
||||
const aktuell = state.key === key
|
||||
return {
|
||||
antwort: aktuell ? state.antwort : null,
|
||||
loading: Boolean(customerId) && enabled && !aktuell,
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user