Verbinden, umbenennen, von Hand abgleichen und trennen. Alle Aktionen arbeiten nur auf Konten des angemeldeten Benutzers — die Kennung geht in die where-Bedingung, nicht in einen nachträglichen Vergleich. Ein Anbieter erscheint nur, wenn die Instanz ihn erlaubt *und* er konfiguriert ist. Ist er erlaubt, aber nicht konfiguriert, sagt die Seite das ausdrücklich, statt den Knopf wortlos wegzulassen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
749 B
TypeScript
34 lines
749 B
TypeScript
'use client'
|
|
|
|
import { useEffect, useRef } from 'react'
|
|
import { useRouter } from 'next/navigation'
|
|
import { toast } from 'sonner'
|
|
|
|
/**
|
|
* Zeigt die Rückmeldung aus der Adresszeile, die die OAuth-Rückleitung dort
|
|
* hinterlassen hat, und räumt sie danach weg — sonst erschiene sie bei jedem
|
|
* Neuladen erneut.
|
|
*/
|
|
export function Meldung({
|
|
ok,
|
|
fehler,
|
|
}: {
|
|
ok?: string | undefined
|
|
fehler?: string | undefined
|
|
}) {
|
|
const router = useRouter()
|
|
const gezeigt = useRef(false)
|
|
|
|
useEffect(() => {
|
|
if (gezeigt.current) return
|
|
if (!ok && !fehler) return
|
|
|
|
gezeigt.current = true
|
|
if (ok) toast.success(ok)
|
|
if (fehler) toast.error(fehler)
|
|
router.replace('/kalenderkonten')
|
|
}, [ok, fehler, router])
|
|
|
|
return null
|
|
}
|