diff --git a/extension/src/popup/components/item-list.ts b/extension/src/popup/components/item-list.ts index 9b03960..d816856 100644 --- a/extension/src/popup/components/item-list.ts +++ b/extension/src/popup/components/item-list.ts @@ -2,7 +2,7 @@ /// type-iconed rows. Clicking a row fetches the full Item and navigates /// to the detail view. -import { getState, setState, sendMessage, navigate, escapeHtml } from '../popup'; +import { getState, setState, sendMessage, navigate, escapeHtml, openVaultTab } from '../popup'; import type { ItemId, ItemType, ManifestEntry, Item } from '../../shared/types'; /// Extract the display hostname from an icon_hint or fallback to the first tag. @@ -66,6 +66,7 @@ export function renderItemList(app: HTMLElement): void { + @@ -92,6 +93,8 @@ export function renderItemList(app: HTMLElement): void { wireRowClicks(); }); + document.getElementById('vault-btn')?.addEventListener('click', () => openVaultTab()); + document.getElementById('new-btn')?.addEventListener('click', () => { setState({ newType: null }); navigate('add'); @@ -203,6 +206,12 @@ function handleListKeydown(e: KeyboardEvent): void { return; } + if (e.key === 'F' && e.shiftKey) { + e.preventDefault(); + openVaultTab(); + return; + } + const filtered = getFilteredEntries(); if (e.key === 'ArrowDown') { diff --git a/extension/src/popup/components/unlock.ts b/extension/src/popup/components/unlock.ts index 2106ffc..8fe38f5 100644 --- a/extension/src/popup/components/unlock.ts +++ b/extension/src/popup/components/unlock.ts @@ -1,6 +1,6 @@ /// Unlock view — passphrase input with ENTER to submit. -import { getState, setState, sendMessage, navigate, escapeHtml } from '../popup'; +import { getState, setState, sendMessage, navigate, escapeHtml, openVaultTab } from '../popup'; import type { ItemId, ManifestEntry } from '../../shared/types'; export function renderUnlock(app: HTMLElement): void { @@ -23,6 +23,7 @@ export function renderUnlock(app: HTMLElement): void { ${state.loading ? '