diff --git a/web/src/client/components/full-header.ts b/web/src/client/components/full-header.ts index ff05ca30..6a4ae75a 100644 --- a/web/src/client/components/full-header.ts +++ b/web/src/client/components/full-header.ts @@ -49,7 +49,7 @@ export class FullHeader extends HeaderBase { > ${this.renderActionButtons(exitedSessions, runningSessions)} this.dispatchEvent(new CustomEvent('open-file-browser'))} title="Browse Files (⌘O)" > @@ -59,7 +59,7 @@ export class FullHeader extends HeaderBase { d="M1.75 1h5.5c.966 0 1.75.784 1.75 1.75v1h4c.966 0 1.75.784 1.75 1.75v7.75A1.75 1.75 0 0113 15H3a1.75 1.75 0 01-1.75-1.75V2.75C1.25 1.784 1.784 1 1.75 1zM2.75 2.5v10.75c0 .138.112.25.25.25h10a.25.25 0 00.25-.25V5.5a.25.25 0 00-.25-.25H8.75v-2.5a.25.25 0 00-.25-.25h-5.5a.25.25 0 00-.25.25z" /> - Browse + Browse ${this.authMethod || 'authenticated'} + + Settings + + session.status === 'exited'); + const runningSessions = this.sessions.filter((session) => session.status === 'running'); - if (exitedSessions.length === 0) return ''; + // If no exited sessions and no running sessions, don't show controls + if (exitedSessions.length === 0 && runningSessions.length === 0) return ''; return html` - - this.dispatchEvent(new CustomEvent('hide-exited-change', { detail: !this.hideExited }))} - > - - ${this.hideExited ? 'Show' : 'Hide'} Exited (${exitedSessions.length}) - - + ${ + exitedSessions.length > 0 + ? html` + - - - + @click=${() => this.dispatchEvent(new CustomEvent('hide-exited-change', { detail: !this.hideExited }))} + > + + ${this.hideExited ? 'Show' : 'Hide'} Exited (${exitedSessions.length}) + ${this.hideExited ? 'Show' : 'Hide'} (${exitedSessions.length}) + + + + + + ` + : '' + } + ${ + runningSessions.length > 0 + ? html` + this.dispatchEvent(new CustomEvent('kill-all-sessions'))} + > + Kill All (${runningSessions.length}) + + ` + : '' + } ${ !this.hideExited && exitedSessions.length > 0 ? html` - ${this.cleaningExited ? 'Cleaning...' : `Clean Exited (${exitedSessions.length})`} + ${this.cleaningExited ? 'Cleaning...' : `Clean Exited (${exitedSessions.length})`} + ${this.cleaningExited ? 'Cleaning...' : 'Clean'} ` : ''