import type { ReactNode } from 'react' import React from 'react' import { Text } from 'src/ink.js' import type { TaskStatus } from 'src/Task.js' import type { LocalShellTaskState } from 'src/tasks/LocalShellTask/guards.js' import type { DeepImmutable } from 'src/types/utils.js' type TaskStatusTextProps = { status: TaskStatus label?: string suffix?: string } export function TaskStatusText({ status, label, suffix, }: TaskStatusTextProps): ReactNode { const displayLabel = label ?? status const color = status === 'completed' ? 'success' : status === 'failed' ? 'error' : status === 'killed' ? 'warning' : undefined return ( ({displayLabel} {suffix}) ) } export function ShellProgress({ shell, }: { shell: DeepImmutable }): ReactNode { switch (shell.status) { case 'completed': return case 'failed': return case 'killed': return case 'running': case 'pending': return } }