import { useState } from 'react' import { nostrAuthService } from '@/lib/nostrAuth' interface UnlockAccountModalProps { onSuccess: () => void onClose: () => void } function WordInputs({ words, onWordChange, }: { words: string[] onWordChange: (index: number, value: string) => void }) { return (
{words.map((word, index) => (
onWordChange(index, e.target.value)} className="w-full px-3 py-2 border border-gray-300 rounded-lg font-mono text-lg text-center" autoComplete="off" autoCapitalize="off" autoCorrect="off" spellCheck="false" />
))}
) } function useUnlockAccount(words: string[], setWords: (words: string[]) => void, setError: (error: string | null) => void) { const handleWordChange = (index: number, value: string) => { const newWords = [...words] newWords[index] = value.trim().toLowerCase() setWords(newWords) setError(null) } const handlePaste = async () => { try { const text = await navigator.clipboard.readText() const pastedWords = text.trim().split(/\s+/).slice(0, 4) if (pastedWords.length === 4) { setWords(pastedWords.map((w) => w.toLowerCase())) setError(null) } } catch (_e) { // Ignore clipboard errors } } return { handleWordChange, handlePaste } } function UnlockAccountButtons({ loading, words, onUnlock, onClose, }: { loading: boolean words: string[] onUnlock: () => void onClose: () => void }) { return (
) } function UnlockAccountForm({ words, handleWordChange, handlePaste, }: { words: string[] handleWordChange: (index: number, value: string) => void handlePaste: () => void }) { return (
) } export function UnlockAccountModal({ onSuccess, onClose }: UnlockAccountModalProps) { const [words, setWords] = useState(['', '', '', '']) const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const { handleWordChange, handlePaste } = useUnlockAccount(words, setWords, setError) const handleUnlock = async () => { if (words.some((word) => !word)) { setError('Veuillez remplir tous les mots-clés') return } setLoading(true) setError(null) try { await nostrAuthService.unlockAccount(words) onSuccess() onClose() } catch (e) { setError(e instanceof Error ? e.message : 'Échec du déverrouillage. Vérifiez vos mots-clés.') } finally { setLoading(false) } } return (

Déverrouiller votre compte

Entrez vos 4 mots-clés de récupération pour déverrouiller votre compte.

{error &&

{error}

}
) }