import { t } from '@/lib/i18n' import type { KeyManagementManagerActions } from './useKeyManagementManager' import type { KeyManagementManagerState } from './keyManagementController' export function KeyManagementRecoverySection(params: { state: KeyManagementManagerState actions: KeyManagementManagerActions }): React.ReactElement | null { if (!params.state.recoveryPhrase || !params.state.newNpub) { return null } return (
) } function KeyManagementRecoveryWarning(): React.ReactElement { return (

{t('settings.keyManagement.recovery.warning.title')}

{t('settings.keyManagement.recovery.warning.part3')}

) } function KeyManagementNewNpubCard(params: { newNpub: string }): React.ReactElement { return (

{t('settings.keyManagement.recovery.newNpub')}

{params.newNpub}

) } function KeyManagementDoneButton(params: { onDone: () => void }): React.ReactElement { return ( ) } function RecoveryWordsGrid(params: { recoveryPhrase: string[] }): React.ReactElement { const items = buildRecoveryWordItems(params.recoveryPhrase) return (
{items.map((item) => (
{item.position}. {item.word}
))}
) } interface RecoveryWordItem { id: string position: number word: string } function buildRecoveryWordItems(recoveryPhrase: readonly string[]): RecoveryWordItem[] { const occurrences = new Map() const items: RecoveryWordItem[] = [] let position = 1 for (const word of recoveryPhrase) { const current = occurrences.get(word) ?? 0 const next = current + 1 occurrences.set(word, next) items.push({ id: `${word}-${next}`, position, word }) position += 1 } return items }