Files
orca/src/shared/tab-title-resolution.ts
T
2026-07-16 16:57:08 -07:00

35 lines
1.1 KiB
TypeScript

import type { Tab, TerminalTab } from './types'
import { isMeaningfulOpenCodeTerminalTitle } from './opencode-terminal-title'
export function resolveTerminalTabTitle(
tab: Pick<TerminalTab, 'customTitle' | 'quickCommandLabel' | 'generatedTitle' | 'title'>,
generatedTitlesEnabled: boolean,
fallback = ''
): string {
const liveTitle = tab.title?.trim() ?? ''
return (
tab.customTitle?.trim() ||
tab.quickCommandLabel?.trim() ||
(isMeaningfulOpenCodeTerminalTitle(liveTitle) ? liveTitle : '') ||
(generatedTitlesEnabled ? tab.generatedTitle?.trim() : '') ||
liveTitle ||
fallback
)
}
export function resolveUnifiedTabLabel(
tab: Pick<Tab, 'customLabel' | 'quickCommandLabel' | 'generatedLabel' | 'label'> | undefined,
generatedTitlesEnabled: boolean,
fallback = ''
): string {
const liveLabel = tab?.label?.trim() ?? ''
return (
tab?.customLabel?.trim() ||
tab?.quickCommandLabel?.trim() ||
(isMeaningfulOpenCodeTerminalTitle(liveLabel) ? liveLabel : '') ||
(generatedTitlesEnabled ? tab?.generatedLabel?.trim() : '') ||
liveLabel ||
fallback
)
}