@@ -76,10 +76,11 @@ const createProgressTextNode = ({ width, color, name, progress, index }) => {
76
76
* @param {object } props Function properties.
77
77
* @param {Lang } props.lang Programming language object.
78
78
* @param {number } props.totalSize Total size of all languages.
79
+ * @param {boolean } props.hideProgress Whether to hide percentage.
79
80
* @param {number } props.index Index of the programming language.
80
81
* @returns {string } Compact layout programming language SVG node.
81
82
*/
82
- const createCompactLangNode = ( { lang, totalSize, index } ) => {
83
+ const createCompactLangNode = ( { lang, totalSize, hideProgress , index } ) => {
83
84
const percentage = ( ( lang . size / totalSize ) * 100 ) . toFixed ( 2 ) ;
84
85
const staggerDelay = ( index + 3 ) * 150 ;
85
86
const color = lang . color || "#858585" ;
@@ -88,7 +89,7 @@ const createCompactLangNode = ({ lang, totalSize, index }) => {
88
89
<g class="stagger" style="animation-delay: ${ staggerDelay } ms">
89
90
<circle cx="5" cy="6" r="5" fill="${ color } " />
90
91
<text data-testid="lang-name" x="15" y="10" class='lang-name'>
91
- ${ lang . name } ${ percentage } %
92
+ ${ lang . name } ${ hideProgress ? "" : percentage + "%" }
92
93
</text>
93
94
</g>
94
95
` ;
@@ -100,9 +101,10 @@ const createCompactLangNode = ({ lang, totalSize, index }) => {
100
101
* @param {object[] } props Function properties.
101
102
* @param {Lang[] } props.langs Array of programming languages.
102
103
* @param {number } props.totalSize Total size of all languages.
104
+ * @param {boolean } props.hideProgress Whether to hide percentage.
103
105
* @returns {string } Programming languages SVG node.
104
106
*/
105
- const createLanguageTextNode = ( { langs, totalSize } ) => {
107
+ const createLanguageTextNode = ( { langs, totalSize, hideProgress } ) => {
106
108
const longestLang = getLongestLang ( langs ) ;
107
109
const chunked = chunkArray ( langs , langs . length / 2 ) ;
108
110
const layouts = chunked . map ( ( array ) => {
@@ -111,6 +113,7 @@ const createLanguageTextNode = ({ langs, totalSize }) => {
111
113
createCompactLangNode ( {
112
114
lang,
113
115
totalSize,
116
+ hideProgress,
114
117
index,
115
118
} ) ,
116
119
) ;
@@ -160,9 +163,10 @@ const renderNormalLayout = (langs, width, totalLanguageSize) => {
160
163
* @param {Lang[] } langs Array of programming languages.
161
164
* @param {number } width Card width.
162
165
* @param {number } totalLanguageSize Total size of all languages.
166
+ * @param {boolean } hideProgress Whether to hide progress bar.
163
167
* @returns {string } Compact layout card SVG object.
164
168
*/
165
- const renderCompactLayout = ( langs , width , totalLanguageSize ) => {
169
+ const renderCompactLayout = ( langs , width , totalLanguageSize , hideProgress ) => {
166
170
const paddingRight = 50 ;
167
171
const offsetWidth = width - paddingRight ;
168
172
// progressOffset holds the previous language's width and used to offset the next language
@@ -193,15 +197,21 @@ const renderCompactLayout = (langs, width, totalLanguageSize) => {
193
197
. join ( "" ) ;
194
198
195
199
return `
196
- <mask id="rect-mask">
200
+ ${
201
+ ! hideProgress
202
+ ? `
203
+ <mask id="rect-mask">
197
204
<rect x="0" y="0" width="${ offsetWidth } " height="8" fill="white" rx="5"/>
198
205
</mask>
199
206
${ compactProgressBar }
200
-
201
- <g transform="translate(0, 25)">
207
+ `
208
+ : ""
209
+ }
210
+ <g transform="translate(0, ${ hideProgress ? "0" : "25" } )">
202
211
${ createLanguageTextNode ( {
203
212
langs,
204
213
totalSize : totalLanguageSize ,
214
+ hideProgress : hideProgress ,
205
215
} ) }
206
216
</g>
207
217
` ;
@@ -276,6 +286,7 @@ const renderTopLanguages = (topLangs, options = {}) => {
276
286
text_color,
277
287
bg_color,
278
288
hide,
289
+ hide_progress,
279
290
theme,
280
291
layout,
281
292
custom_title,
@@ -305,11 +316,17 @@ const renderTopLanguages = (topLangs, options = {}) => {
305
316
let height = calculateNormalLayoutHeight ( langs . length ) ;
306
317
307
318
let finalLayout = "" ;
308
- if ( layout === "compact" ) {
319
+ if ( layout === "compact" || hide_progress == true ) {
309
320
width = width + 50 ; // padding
310
- height = calculateCompactLayoutHeight ( langs . length ) ;
311
-
312
- finalLayout = renderCompactLayout ( langs , width , totalLanguageSize ) ;
321
+ height =
322
+ calculateCompactLayoutHeight ( langs . length ) + ( hide_progress ? - 25 : 0 ) ;
323
+
324
+ finalLayout = renderCompactLayout (
325
+ langs ,
326
+ width ,
327
+ totalLanguageSize ,
328
+ hide_progress ,
329
+ ) ;
313
330
} else {
314
331
finalLayout = renderNormalLayout ( langs , width , totalLanguageSize ) ;
315
332
}
0 commit comments