import { useCallback } from "react"; import { Helmet } from "react-helmet"; import { useTranslation } from "react-i18next"; import { faInfoCircle } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Link, useNavigate } from "@tanstack/react-router"; import { format } from "date-fns"; import { createNotification } from "@app/components/notifications"; import { Button, DeleteActionModal, Tooltip } from "@app/components/v2"; import { usePopUp } from "@app/hooks"; import { useGetMyDuplicateAccount, useLogoutUser, useRemoveMyDuplicateAccounts } from "@app/hooks/api"; type Props = { onRemoveDuplicateLater: () => void; }; export const EmailDuplicationConfirmation = ({ onRemoveDuplicateLater }: Props) => { const duplicateAccounts = useGetMyDuplicateAccount(); const removeDuplicateEmails = useRemoveMyDuplicateAccounts(); const { t } = useTranslation(); const navigate = useNavigate(); const logout = useLogoutUser(true); const { popUp, handlePopUpToggle } = usePopUp(["removeDuplicateConfirm"] as const); const handleLogout = useCallback(async () => { try { console.log("Logging out..."); await logout.mutateAsync(); navigate({ to: "/login" }); } catch (error) { console.error(error); } }, [logout, navigate]); return (
{t("common.head-title", { title: t("login.title") })}
Infisical logo

Multiple Accounts Detected

You're currently logged in as{" "} {duplicateAccounts?.data?.myAccount?.username}.

We've detected multiple accounts using variations of the same email address.

Your other accounts
{duplicateAccounts?.data?.duplicateAccounts?.map((el) => { const lastSession = el.devices?.at(-1); return (
{el.username}
Last logged in at {format(new Date(el.updatedAt), "Pp")}
Organizations: {el?.organizations?.map((i) => i.slug)?.join(",")}
IP: {lastSession?.ip || "-"}
User Agent: {lastSession?.userAgent || "-"}
} >
); })}
handlePopUpToggle("removeDuplicateConfirm", isOpen)} deleteKey="remove" buttonText="Confirm" onDeleteApproved={() => removeDuplicateEmails.mutateAsync(undefined, { onSuccess: () => { createNotification({ type: "success", text: "Removed duplicate accounts" }); onRemoveDuplicateLater(); } }) } />
); };