"use client"; import React, { useState } from "react"; import { X, AlertTriangle, Loader2 } from "lucide-react"; import type { EmailConflictData } from "@/app/types/google-oauth"; interface EmailConflictModalProps { isOpen: boolean; onClose: () => void; conflictData: EmailConflictData; onBindAccount: (bindToken: string) => Promise; onReturnToLogin: () => void; } export const EmailConflictModal: React.FC = ({ isOpen, onClose, conflictData, onBindAccount, onReturnToLogin, }) => { const [isBinding, setIsBinding] = useState(false); const [error, setError] = useState(""); if (!isOpen) return null; const handleBindAccount = async () => { try { setIsBinding(true); setError(""); await onBindAccount(conflictData.bindToken); onClose(); } catch (error: any) { console.error("Account binding failed:", error); setError(error.message || "Account binding failed"); } finally { setIsBinding(false); } }; const handleReturnToLogin = () => { onClose(); onReturnToLogin(); }; return (
{/* Header */}

Account Conflict

The email address {conflictData.existingUser.email} is already associated with an existing account.

Existing account type:

{conflictData.existingUser.authType}

You can either bind your Google account to the existing account or return to login with your existing credentials.

{error && (
{error}
)}
{/* Actions */}

Binding will allow you to login with either your existing credentials or Google account.

); };