import { useEffect, useState } from 'react' import { getAbgerechnet } from '../lib/teamApi' const NICHTS = Object.freeze({}) /** * Arbeitsblatt-Kennung -> Rechnungsnummer oder „Entwurf“ für die Tickets in `ticketIds` (Team-Route, alle Mitarbeiter, * ohne Beträge). Ein Fehler verbirgt nur die Abzeichen, das Arbeitsblatt bleibt bedienbar; der Hook wirft nie. */ export function useAbgerechnet(ticketIds) { const key = (ticketIds || []).join(',') const [state, setState] = useState({ key: '', map: NICHTS }) useEffect(() => { if (!key) return undefined let cancelled = false Promise.all(key.split(',').map((id) => getAbgerechnet(id).then((r) => r?.abgerechnet || NICHTS).catch(() => NICHTS))) .then((maps) => { if (!cancelled) setState({ key, map: Object.assign({}, ...maps) }) }) return () => { cancelled = true } }, [key]) return state.key === key ? state.map : NICHTS }