22// for details. All rights reserved. Use of this source code is governed by a
33// BSD-style license that can be found in the LICENSE file.
44
5+ import 'package:_pub_shared/format/number_format.dart' ;
6+ import 'package:pub_dev/frontend/request_context.dart' ;
57import 'package:pub_dev/shared/popularity_storage.dart' ;
68
79import '../../../dom/dom.dart' as d;
@@ -11,6 +13,7 @@ d.Node labeledScoresNode({
1113 required int likeCount,
1214 required int ? grantedPubPoints,
1315 required int ? popularity,
16+ required int ? thirtyDaysDownloads,
1417}) {
1518 return d.a (
1619 classes: ['packages-scores' ],
@@ -24,19 +27,32 @@ d.Node labeledScoresNode({
2427 classes: ['packages-score' , 'packages-score-health' ],
2528 child: _labeledScore ('pub points' , grantedPubPoints, sign: '' ),
2629 ),
27- d.div (
28- classes: ['packages-score' , 'packages-score-popularity' ],
29- child: _labeledScore (
30- 'popularity' ,
31- popularityStorage.isInvalid ? null : popularity,
32- sign: popularityStorage.isInvalid ? '' : '%' ,
33- ),
34- ),
30+ requestContext.experimentalFlags.showDownloadCounts
31+ ? d.div (
32+ classes: ['packages-score' , 'packages-score-downloads' ],
33+ child: _labeledScore (
34+ 'downloads' ,
35+ thirtyDaysDownloads != null
36+ ? computeValueWithSuffix (thirtyDaysDownloads).value
37+ : null ,
38+ sign: thirtyDaysDownloads != null
39+ ? computeValueWithSuffix (thirtyDaysDownloads).suffix
40+ : '' ,
41+ ),
42+ )
43+ : d.div (
44+ classes: ['packages-score' , 'packages-score-popularity' ],
45+ child: _labeledScore (
46+ 'popularity' ,
47+ popularityStorage.isInvalid ? null : popularity,
48+ sign: popularityStorage.isInvalid ? '' : '%' ,
49+ ),
50+ ),
3551 ],
3652 );
3753}
3854
39- d.Node _labeledScore (String label, int ? value, {required String sign}) {
55+ d.Node _labeledScore (String label, num ? value, {required String sign}) {
4056 return d.fragment ([
4157 d.div (
4258 classes: ['packages-score-value' , if (value != null ) '-has-value' ],
0 commit comments