- Add Dev Mode toggle to settings that persists in vault metadata - Add test permission prompt button (✨) to all page headers when dev mode enabled - Move devMode and onTestPrompt to NavComponent base class for inheritance - Refactor all home components to extend NavComponent - Simplify permission prompt layout: remove duplicate domain from header - Convert permission descriptions to flowing single paragraphs - Update header-buttons styling for consistent lock/magic button layout Files modified: - projects/common/src/lib/common/nav-component.ts (devMode, onTestPrompt) - projects/common/src/lib/services/storage/types.ts (devMode property) - projects/common/src/lib/services/storage/signer-meta-handler.ts (setDevMode) - projects/common/src/lib/styles/_common.scss (header-buttons styling) - projects/*/src/app/components/home/*/settings.component.* (dev mode UI) - projects/*/src/app/components/home/*/*.component.* (extend NavComponent) - projects/*/public/prompt.html (simplified layout) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
52 lines
1.2 KiB
TypeScript
52 lines
1.2 KiB
TypeScript
import { Component, inject, OnInit } from '@angular/core';
|
|
import { Router } from '@angular/router';
|
|
import { LoggerService, LogEntry, NavComponent } from '@common';
|
|
import { DatePipe } from '@angular/common';
|
|
|
|
@Component({
|
|
selector: 'app-logs',
|
|
templateUrl: './logs.component.html',
|
|
styleUrl: './logs.component.scss',
|
|
imports: [DatePipe],
|
|
})
|
|
export class LogsComponent extends NavComponent implements OnInit {
|
|
readonly #logger = inject(LoggerService);
|
|
readonly #router = inject(Router);
|
|
|
|
get logs(): LogEntry[] {
|
|
return this.#logger.logs;
|
|
}
|
|
|
|
ngOnInit() {
|
|
// Refresh logs from storage to get background script logs
|
|
this.#logger.refreshLogs();
|
|
}
|
|
|
|
async onRefresh() {
|
|
await this.#logger.refreshLogs();
|
|
}
|
|
|
|
async onClear() {
|
|
await this.#logger.clear();
|
|
}
|
|
|
|
getLevelClass(level: LogEntry['level']): string {
|
|
switch (level) {
|
|
case 'error':
|
|
return 'log-error';
|
|
case 'warn':
|
|
return 'log-warn';
|
|
case 'debug':
|
|
return 'log-debug';
|
|
default:
|
|
return 'log-info';
|
|
}
|
|
}
|
|
|
|
async onClickLock() {
|
|
this.#logger.logVaultLock();
|
|
await this.storage.lockVault();
|
|
this.#router.navigateByUrl('/vault-login');
|
|
}
|
|
}
|