import { useEffect, useRef } from 'react'; import { useEscapeKey } from '../../hooks/useEscapeKey'; import { useT } from '../../lib/i18n/I18nContext'; import { type AccountProvider, type ProviderDescriptor, PROVIDERS } from '../../types/accounts'; import { CloseIcon } from '../ui'; import { ProviderIcon } from './providerIcons'; interface AddAccountModalProps { open: boolean; onClose: () => void; onPick: (provider: ProviderDescriptor) => void; /** Providers the user has already connected — filtered out of the picker. */ connectedProviders?: ReadonlySet; } const AddAccountModal = ({ open, onClose, onPick, connectedProviders }: AddAccountModalProps) => { const { t } = useT(); const closeBtnRef = useRef(null); useEscapeKey(onClose, open); useEffect(() => { if (!open) return; closeBtnRef.current?.focus(); }, [open]); if (!open) return null; const available = connectedProviders ? PROVIDERS.filter(p => !connectedProviders.has(p.id)) : PROVIDERS; return (
e.stopPropagation()}>

{t('accounts.addModal.title')}

{available.length === 0 ? (
{t('accounts.addModal.allConnected')}
) : ( available.map(p => ( )) )}
); }; export default AddAccountModal;