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:
co-authored by
Claude Opus 5
parent
3befcc19a3
commit
f5eadefdbb
@@ -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>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user