import { useState } from "react"; import type { Config, BridgeStatus } from "../types"; interface Props { config: Config | null; status: BridgeStatus | null; bridgePassword: string | null; onRegeneratePassword: () => Promise; } export function ConnectionPanel({ config, status, bridgePassword, onRegeneratePassword }: Props) { const [showPassword, setShowPassword] = useState(false); const [copied, setCopied] = useState(false); const isRunning = status === "Running" || status === "Starting"; const copyToClipboard = (text: string) => { navigator.clipboard.writeText(text); setCopied(true); setTimeout(() => setCopied(false), 2000); }; if (!config) { return

Loading...

; } return (

Configure your mail client with these settings

Incoming Mail (IMAP)

Server 127.0.0.1 Port {config.imap_port} Security SSL/TLS

Outgoing Mail (SMTP)

Server 127.0.0.1 Port {config.smtp_port} Security SSL/TLS

Authentication

Username copyToClipboard(config.email)}> {config.email || "—"} Password
{bridgePassword ? ( <> {showPassword ? bridgePassword : "•".repeat(23)} ) : ( Start the bridge to generate )}
{bridgePassword && ( )}
Note: Accept the self-signed certificate when your mail client prompts.
); }