/** * Full Header Component * * Full-width header for list view with horizontal layout */ import { html } from 'lit'; import { customElement } from 'lit/decorators.js'; import { HeaderBase } from './header-base.js'; import type { Session } from './session-list.js'; import './terminal-icon.js'; import './notification-status.js'; @customElement('full-header') export class FullHeader extends HeaderBase { render() { const runningSessions = this.runningSessions; const exitedSessions = this.exitedSessions; return html`
this.dispatchEvent(new CustomEvent('open-notification-settings'))} > ${this.renderUserMenu()}
${this.renderExitedToggleButton(exitedSessions)} ${this.renderActionButtons(exitedSessions, runningSessions)}
`; } private renderExitedToggleButton(exitedSessions: Session[]) { if (exitedSessions.length === 0) return ''; return html` `; } private renderActionButtons(exitedSessions: Session[], runningSessions: Session[]) { return html` ${!this.hideExited && exitedSessions.length > 0 ? html` ` : ''} ${runningSessions.length > 0 && !this.killingAll ? html` ` : ''} ${this.killingAll ? html`
Killing...
` : ''} `; } private renderUserMenu() { if (!this.currentUser) return ''; return html`
${this.showUserMenu ? html`
${this.authMethod || 'authenticated'}
` : ''}
`; } }