diff --git a/src/cards/wakatime.js b/src/cards/wakatime.js index 9107e82d51276..c7fea5cab586a 100644 --- a/src/cards/wakatime.js +++ b/src/cards/wakatime.js @@ -59,6 +59,18 @@ const formatLanguageValue = ({ display_format, lang }) => { : lang.text; }; +/** + * Truncate text if it exceeds max length and add ellipsis. + * + * @param {string} text The text to truncate. + * @param {number} maxLength Maximum length before truncation. + * @returns {string} The truncated text. + */ +const truncateText = (text, maxLength = 18) => { + if (text.length <= maxLength) return text; + return text.substring(0, maxLength - 3) + "..."; +}; + /** * Create compact WakaTime layout. * @@ -73,13 +85,13 @@ const createCompactLangNode = ({ lang, x, y, display_format }) => { // @ts-ignore const color = languageColors[lang.name] || "#858585"; const value = formatLanguageValue({ display_format, lang }); + const truncatedName = truncateText(lang.name, 18); return ` - - ${lang.name} - ${value} - + title="${lang.name}" +${truncatedName} - ${value} `; };