diff --git a/webapp/src/components/SendsPage.tsx b/webapp/src/components/SendsPage.tsx index 3324bb9..8a788e1 100644 --- a/webapp/src/components/SendsPage.tsx +++ b/webapp/src/components/SendsPage.tsx @@ -554,7 +554,7 @@ export default function SendsPage(props: SendsPageProps) { - diff --git a/webapp/src/components/VaultPage.tsx b/webapp/src/components/VaultPage.tsx index a15b015..3fb6702 100644 --- a/webapp/src/components/VaultPage.tsx +++ b/webapp/src/components/VaultPage.tsx @@ -263,6 +263,8 @@ export default function VaultPage(props: VaultPageProps) { setRepromptApprovedCipherId(null); setRepromptPassword(''); setRepromptOpen(false); + setShowPassword(false); + setHiddenFieldVisibleMap({}); }, [selectedCipherId]); useEffect(() => { @@ -516,6 +518,7 @@ const folderName = useCallback((id: string | null | undefined): string => { setCreateMenuOpen(false); setSelectedCipherId(''); setShowPassword(false); + setHiddenFieldVisibleMap({}); setLocalError(''); setAttachmentQueue([]); setRemovedAttachmentIds({}); @@ -530,6 +533,7 @@ const folderName = useCallback((id: string | null | undefined): string => { setIsCreating(false); setIsEditing(true); setShowPassword(false); + setHiddenFieldVisibleMap({}); setLocalError(''); setAttachmentQueue([]); setRemovedAttachmentIds({}); @@ -542,6 +546,8 @@ const folderName = useCallback((id: string | null | undefined): string => { setDraft(null); setIsEditing(false); setIsCreating(false); + setShowPassword(false); + setHiddenFieldVisibleMap({}); setLocalError(''); setAttachmentQueue([]); setRemovedAttachmentIds({}); @@ -971,6 +977,8 @@ const folderName = useCallback((id: string | null | undefined): string => { } setSelectedCipherId(cipherId); setRepromptApprovedCipherId(null); + setShowPassword(false); + setHiddenFieldVisibleMap({}); if (isMobileLayout) setMobilePanel('detail'); setMobileSidebarOpen(false); }, [isEditing, isCreating, cancelEdit, isMobileLayout]); diff --git a/webapp/src/components/vault/VaultDetailView.tsx b/webapp/src/components/vault/VaultDetailView.tsx index 13cfdc8..852a18c 100644 --- a/webapp/src/components/vault/VaultDetailView.tsx +++ b/webapp/src/components/vault/VaultDetailView.tsx @@ -1,5 +1,5 @@ import { createPortal } from 'preact/compat'; -import { useMemo, useState } from 'preact/hooks'; +import { useEffect, useMemo, useState } from 'preact/hooks'; import { Archive, Clipboard, Download, Eye, EyeOff, ExternalLink, Folder, Paperclip, Pencil, RotateCcw, Trash2, X } from 'lucide-preact'; import { useDialogLifecycle } from '@/components/ConfirmDialog'; import type { Cipher } from '@/lib/types'; @@ -92,6 +92,10 @@ export default function VaultDetailView(props: VaultDetailViewProps) { .filter((entry) => entry.password.trim()), [props.selectedCipher.passwordHistory] ); + useEffect(() => { + setShowSshPrivateKey(false); + setPasswordHistoryOpen(false); + }, [props.selectedCipher.id]); const formatDownloadLabel = (attachmentId: string) => { const downloadKey = `${props.selectedCipher.id}:${attachmentId}`; if (props.downloadingAttachmentKey !== downloadKey) return t('txt_download');