@@ -53,16 +53,21 @@ const noCodingActivityNode = ({ color, text }) => {
53
53
* @param {WakaTimeLang } args.lang The languages array.
54
54
* @param {number } args.x The x position of the language node.
55
55
* @param {number } args.y The y position of the language node.
56
+ * @param {"time" | "percent" } args.display_format The display format of the language node.
56
57
* @returns {string } The compact layout language SVG node.
57
58
*/
58
- const createCompactLangNode = ( { lang, x, y } ) => {
59
+ const createCompactLangNode = ( { lang, x, y, display_format } ) => {
59
60
const color = languageColors [ lang . name ] || "#858585" ;
61
+ const value =
62
+ display_format === "percent"
63
+ ? `${ lang . percent . toFixed ( 2 ) . toString ( ) } %`
64
+ : lang . text ;
60
65
61
66
return `
62
67
<g transform="translate(${ x } , ${ y } )">
63
68
<circle cx="5" cy="6" r="5" fill="${ color } " />
64
69
<text data-testid="lang-name" x="15" y="10" class='lang-name'>
65
- ${ lang . name } - ${ lang . text }
70
+ ${ lang . name } - ${ value }
66
71
</text>
67
72
</g>
68
73
` ;
@@ -74,21 +79,24 @@ const createCompactLangNode = ({ lang, x, y }) => {
74
79
* @param {Object } args The function arguments.
75
80
* @param {WakaTimeLang[] } args.langs The language objects.
76
81
* @param {number } args.y The y position of the language node.
82
+ * @param {"time" | "percent" } args.display_format The display format of the language node.
77
83
* @returns {string[] } The language text node items.
78
84
*/
79
- const createLanguageTextNode = ( { langs, y } ) => {
85
+ const createLanguageTextNode = ( { langs, y, display_format } ) => {
80
86
return langs . map ( ( lang , index ) => {
81
87
if ( index % 2 === 0 ) {
82
88
return createCompactLangNode ( {
83
89
lang,
84
90
x : 25 ,
85
91
y : 12.5 * index + y ,
92
+ display_format,
86
93
} ) ;
87
94
}
88
95
return createCompactLangNode ( {
89
96
lang,
90
97
x : 230 ,
91
98
y : 12.5 + 12.5 * index ,
99
+ display_format,
92
100
} ) ;
93
101
} ) ;
94
102
} ;
@@ -320,6 +328,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
320
328
? createLanguageTextNode ( {
321
329
y : 25 ,
322
330
langs : filteredLanguages ,
331
+ display_format,
323
332
} ) . join ( "" )
324
333
: noCodingActivityNode ( {
325
334
// @ts -ignore
0 commit comments