feat: Lauf von Hand anstossen und Spiegelschalter in der Liste

Direkt nach dem Einrichten wuesste man sonst erst beim naechsten Takt,
ob die Zugangsdaten stimmen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-09-11 23:59:14 +02:00
co-authored by Claude Opus 5
parent 3befcc19a3
commit f5eadefdbb
4 changed files with 99 additions and 1 deletions
@@ -0,0 +1,46 @@
'use client'
import { useTransition } from 'react'
import { useRouter } from 'next/navigation'
import { Loader2, RefreshCw } from 'lucide-react'
import { toast } from 'sonner'
import { Button } from '@/components/ui/button'
import { laufAnstossen } from '@/server/aktionen/integrationen'
/**
* Stößt einen Lauf von Hand an.
*
* Vor allem direkt nach dem Einrichten: Sonst wüsste man erst beim nächsten
* Takt, ob die Zugangsdaten stimmen.
*/
export function LaufKnopf({ quelle }: { quelle: string }) {
const router = useRouter()
const [laeuft, starte] = useTransition()
return (
<Button
art="umriss"
disabled={laeuft}
onClick={() => {
starte(async () => {
const daten = new FormData()
daten.set('quelle', quelle)
const antwort = await laufAnstossen(daten)
if (antwort.ok) {
toast.success(antwort.meldung)
router.refresh()
} else {
toast.error(antwort.fehler)
}
})
}}
>
{laeuft ? (
<Loader2 className="animate-spin" aria-hidden />
) : (
<RefreshCw aria-hidden />
)}
Jetzt abrufen
</Button>
)
}