@@ -39,6 +39,20 @@ const noCodingActivityNode = ({ color, text }) => {
39
39
*@typedef {import('../fetchers/types').WakaTimeLang } WakaTimeLang
40
40
*/
41
41
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
+
42
56
/**
43
57
* Create compact WakaTime layout.
44
58
*
@@ -51,10 +65,7 @@ const noCodingActivityNode = ({ color, text }) => {
51
65
*/
52
66
const createCompactLangNode = ( { lang, x, y, display_format} ) => {
53
67
const 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} ) ;
58
69
59
70
return `
60
71
<g transform="translate(${ x } ,${ y } )">
@@ -341,10 +352,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
341
352
return createTextNode ( {
342
353
id :language . name ,
343
354
label :language . name ,
344
- value :
345
- display_format === "percent"
346
- ?`${ language . percent . toFixed ( 2 ) . toString ( ) } %`
347
- :language . text ,
355
+ value :formatLanguageValue ( { display_format, lang :language } ) ,
348
356
index,
349
357
percent :language . percent ,
350
358
//@ts -ignore