18 lines
679 B
TypeScript
18 lines
679 B
TypeScript
export const TASK_TITLE_MAX_LENGTH = 60;
|
|
|
|
function takeTitleCharacters(value: string, length: number): string {
|
|
return Array.from(value).slice(0, length).join("");
|
|
}
|
|
|
|
/** Clamp text entered directly into a task-title field. */
|
|
export function clampTaskTitleInput(value: string): string {
|
|
return takeTitleCharacters(value, TASK_TITLE_MAX_LENGTH);
|
|
}
|
|
|
|
/** Shorten a title supplied by a remote issue/PR while preserving the limit. */
|
|
export function truncateRemoteTaskTitle(value: string): string {
|
|
const characters = Array.from(value);
|
|
if (characters.length <= TASK_TITLE_MAX_LENGTH) return value;
|
|
return `${characters.slice(0, TASK_TITLE_MAX_LENGTH - 1).join("")}…`;
|
|
}
|