fix: fixing the exit message service to use constants

- Avoiding mouse events for exit messages on terminal on stop process
This commit is contained in:
2026-02-06 11:49:23 -05:00
parent d1b00a2115
commit f767987a42
4 changed files with 98 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
/**
* Exit message formatter
*
* Formats the post-exit banner shown after the TUI closes,
* displaying session info and the resume command.
*/
import { EOL } from "os";
import {
EXIT_LOGO,
EXIT_STYLES,
EXIT_DESCRIPTION_MAX_WIDTH,
EXIT_LINE_PADDING,
EXIT_LOGO_GAP,
EXIT_TRUNCATION_MARKER,
} from "@constants/exit-message";
/** Truncate text to a max width, appending ellipsis if needed */
const truncateText = (text: string, maxWidth: number): string => {
if (text.length <= maxWidth) return text;
return text.slice(0, maxWidth - 1) + EXIT_TRUNCATION_MARKER;
};
/** Format the exit banner with session info */
export const formatExitMessage = (
sessionId?: string,
sessionTitle?: string,
): string => {
if (!sessionId) return "";
const { RESET, DIM, HIGHLIGHT, LOGO_COLOR } = EXIT_STYLES;
const pad = EXIT_LINE_PADDING;
const gap = EXIT_LOGO_GAP;
const description = sessionTitle
? truncateText(sessionTitle, EXIT_DESCRIPTION_MAX_WIDTH)
: "";
const resumeCommand = `codetyper --resume ${sessionId}`;
const lines: string[] = [
"",
`${pad}${LOGO_COLOR}${EXIT_LOGO[0]}${RESET}${gap}${HIGHLIGHT}${description}${RESET}`,
`${pad}${LOGO_COLOR}${EXIT_LOGO[1]}${RESET}${gap}${DIM}${resumeCommand}${RESET}`,
`${pad}${LOGO_COLOR}${EXIT_LOGO[2]}${RESET}`,
"",
];
return lines.join(EOL);
};