mirror of
https://github.com/shuaiplus/nodewarden.git
synced 2026-06-20 21:00:41 +00:00
feat: reset password visibility and history state on cipher selection change
This commit is contained in:
@@ -554,7 +554,7 @@ export default function SendsPage(props: SendsPageProps) {
|
||||
<button type="button" className="btn btn-secondary small" onClick={() => copyAccessUrl(selectedSend)}>
|
||||
<Copy size={14} className="btn-icon" /> {t('txt_copy_link')}
|
||||
</button>
|
||||
<button type="button" className="btn btn-secondary small" onClick={() => { setDraft(draftFromSend(selectedSend)); setIsCreating(false); setIsEditing(true); }}>
|
||||
<button type="button" className="btn btn-secondary small" onClick={() => { setDraft(draftFromSend(selectedSend)); setIsCreating(false); setIsEditing(true); setShowPassword(false); }}>
|
||||
<Pencil size={14} className="btn-icon" /> {t('txt_edit')}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -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]);
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user