"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { mutate } from "swr"; import { ButtonPrimary, ButtonSecondary } from "components/Buttons"; import { Modal } from "components/Modal"; import { DotLoader } from "components/utils/DotLoader"; export const LinkIdentityModal = (props: { open: boolean; onOpenChange: (open: boolean) => void; signedInAs: string; linkingIdentity: string; confirmButtonLabel: string; onConfirm: () => void | Promise; confirming?: boolean; }) => { let router = useRouter(); let [loggingOut, setLoggingOut] = useState(false); return ( { if (loggingOut || props.confirming) return; props.onOpenChange(o); }} className="w-[400px] max-w-full" >

You're signed in as{" "} {props.signedInAs}

Do you want to link{" "} {props.linkingIdentity} to this account?

{ if (loggingOut) return; setLoggingOut(true); try { await fetch("/api/auth/logout"); } finally { mutate("identity", null); router.refresh(); } }} > {loggingOut ? : "Log out"} { if (props.confirming) return; void props.onConfirm(); }} > {props.confirming ? : props.confirmButtonLabel}
); };