import {useEffect,useState} from 'react'; import {request} from './api'; type Availability={online:boolean;vehicleType:string;warning:string}; export function CourierAvailability({courier,refreshKey}:{courier:number;refreshKey?:string}){ const [data,setData]=useState(null),[error,setError]=useState(''),[busy,setBusy]=useState(true),[version,setVersion]=useState(0); useEffect(()=>{const c=new AbortController();setBusy(true);setData(null);setError(''); request(`/master-data/couriers/${courier}/availability`,{signal:c.signal}).then(v=>{if(!c.signal.aborted)setData(v);}).catch(e=>{if(!c.signal.aborted)setError(e.message);}).finally(()=>{if(!c.signal.aborted)setBusy(false);}); return()=>c.abort(); },[courier,refreshKey,version]); return

Derzeit online

{busy&&

Status wird geladen …

}{error&&

{error}

} {data&&<>

{data.online?'Ja':'Nein'}{data.online&&data.vehicleType&&` · ${data.vehicleType}`}

{data.warning&&

{data.warning}

}}

Gespeicherter Verbindungsstatus. Eine vorgemerkte Geräte-Abmeldung ist erst nach Rückmeldung des Geräts wirksam.

; }