import { useState } from "react" import { useQueryClient } from "@tanstack/react-query" import { cn } from "cn" import { Button } from "@/components/ui/button" import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "@/components/ui/sheet" import { type Dienst, useDienste, useProtokoll } from "@/lib/abfragen" import { fehlerText } from "@/lib/anzeige" import { post } from "@/lib/api" import { melden } from "@/lib/meldungen" import type { AktionsErgebnis } from "@/lib/typen" /** Das Protokoll eines Dienstes, direkt unter seiner Zeile — am Handy sonst weit unten außer Sicht. */ function Protokoll({ unit }: { unit: string }) { const protokoll = useProtokoll(unit) let text: string if (protokoll.isPending) text = "Wird gelesen …" else if (protokoll.isError) text = `Das Protokoll lässt sich gerade nicht lesen: ${protokoll.error.message}` else if (protokoll.data.ok === false) text = protokoll.data.err || protokoll.data.text || "Das Protokoll lässt sich nicht lesen." else text = protokoll.data.text?.trim() || "Noch keine Einträge." return (
{text}
)
}
/** Dienste der Box mit Protokoll und Neustart — die „Log-Ansicht der Dienste“. */
export function Dienste({ offen, onSchliessen }: { offen: boolean; onSchliessen: () => void }) {
const qc = useQueryClient()
const dienste = useDienste()
const [gewaehlt, setGewaehlt] = useStateDienste werden gelesen …
} else if (dienste.isError && !dienste.data) { inhalt =Die Dienste lassen sich gerade nicht lesen: {dienste.error.message}
} else if (!dienste.data?.services.length) { inhalt =Keine Dienste gefunden.
} else { inhalt = (