feat(ext/popup): wire navigation for trash, devices, field-history screens

Adds View variants, render cases, teardown calls, and entry points
in settings menu for trash and devices.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
adlee-was-taken
2026-04-27 00:42:53 -04:00
parent b55c59bd35
commit abfc5aed42
2 changed files with 25 additions and 1 deletions

View File

@@ -11,7 +11,12 @@ import { renderItemDetail } from './components/item-detail';
import { renderItemForm } from './components/item-form';
import { renderSettings } from './components/settings';
import { renderVaultSettings } from './components/settings-vault';
import { renderTrash } from './components/trash';
import { renderDevices } from './components/devices';
import { renderFieldHistory } from './components/field-history';
import { teardown as teardownTrash } from './components/trash';
import { teardown as teardownDevices } from './components/devices';
import { teardown as teardownFieldHistory } from './components/field-history';
// --- Escape HTML to prevent XSS ---
export function escapeHtml(str: string): string {
@@ -25,7 +30,7 @@ export function escapeHtml(str: string): string {
// --- State ---
export type View = 'locked' | 'list' | 'detail' | 'add' | 'edit' | 'settings' | 'settings-vault' | 'field-history';
export type View = 'locked' | 'list' | 'detail' | 'add' | 'edit' | 'settings' | 'settings-vault' | 'trash' | 'devices' | 'field-history';
export interface PopupState {
view: View;
@@ -131,6 +136,10 @@ function render(): void {
const app = document.getElementById('app');
if (!app) return;
teardownTrash();
teardownDevices();
teardownFieldHistory();
switch (currentState.view) {
case 'locked':
renderUnlock(app);
@@ -153,6 +162,12 @@ function render(): void {
case 'settings-vault':
renderVaultSettings(app);
break;
case 'trash':
renderTrash(app);
break;
case 'devices':
renderDevices(app);
break;
case 'field-history':
renderFieldHistory(app);
break;