@@ -39,6 +39,20 @@ const noCodingActivityNode = ({ color, text }) => {
3939 *@typedef {import('../fetchers/types').WakaTimeLang } WakaTimeLang
4040 */
4141
42+ /**
43+ * Format language value.
44+ *
45+ *@param {Object } args The function arguments.
46+ *@param {WakaTimeLang } args.lang The language object.
47+ *@param {"time" | "percent" } args.display_format The display format of the language node.
48+ *@returns {string } The formatted language value.
49+ */
50+ const formatLanguageValue = ( { display_format, lang} ) => {
51+ return display_format === "percent"
52+ ?`${ lang . percent . toFixed ( 2 ) . toString ( ) } %`
53+ :lang . text ;
54+ } ;
55+
4256/**
4357 * Create compact WakaTime layout.
4458 *
@@ -51,10 +65,7 @@ const noCodingActivityNode = ({ color, text }) => {
5165 */
5266const createCompactLangNode = ( { lang, x, y, display_format} ) => {
5367const color = languageColors [ lang . name ] || "#858585" ;
54- const value =
55- display_format === "percent"
56- ?`${ lang . percent . toFixed ( 2 ) . toString ( ) } %`
57- :lang . text ;
68+ const value = formatLanguageValue ( { display_format, lang} ) ;
5869
5970return `
6071 <g transform="translate(${ x } ,${ y } )">
@@ -341,10 +352,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
341352return createTextNode ( {
342353id :language . name ,
343354label :language . name ,
344- value :
345- display_format === "percent"
346- ?`${ language . percent . toFixed ( 2 ) . toString ( ) } %`
347- :language . text ,
355+ value :formatLanguageValue ( { display_format, lang :language } ) ,
348356 index,
349357percent :language . percent ,
350358//@ts -ignore