import type { ActiveSession } from "@/lib/session-state"; import { CenteredModal } from "@/lib/tui/shared/CenteredModal"; import { TUI_COLORS } from "@/lib/tui/shared/colors"; interface StopSessionPickerOverlayProps { sessions: ActiveSession[]; onSelectSession: (session: ActiveSession) => void; onClose: () => void; } function formatRelativeStart(startTime: number): string { const elapsedSeconds = Math.max(0, Math.floor((Date.now() - startTime) / 1000)); if (elapsedSeconds < 60) { return `${elapsedSeconds}s ago`; } const elapsedMinutes = Math.floor(elapsedSeconds / 60); if (elapsedMinutes < 60) { return `${elapsedMinutes}m ago`; } const elapsedHours = Math.floor(elapsedMinutes / 60); return `${elapsedHours}h ago`; } function buildOptionName(session: ActiveSession): string { return `${session.sessionName} (${session.sessionId.slice(0, 8)})`; } function buildOptionDescription(session: ActiveSession): string { const branch = session.worktreeBranch ?? session.branch; return `${branch} • ${formatRelativeStart(session.startTime)}`; } export function StopSessionPickerOverlay({ sessions, onSelectSession, onClose, }: StopSessionPickerOverlayProps) { return ( Choose which active worktree session to stop.