import { useContext, useEffect } from 'react' import stripAnsi from 'strip-ansi' import { OSC, osc } from '../termio/osc.js' import { TerminalWriteContext } from '../useTerminalNotification.js' /** Declaratively drive the terminal tab / window title. */ export function useTerminalTitle(title: string | null): void { const writeRaw = useContext(TerminalWriteContext) useEffect(() => { if (title === null || !writeRaw) return const clean = stripAnsi(title) if (process.platform === 'win32') { process.title = clean } else { writeRaw(osc(OSC.SET_TITLE_AND_ICON, clean)) } }, [title, writeRaw]) }