@@ -27,12 +27,19 @@ d.Node listOfPackagesNode({
2727 required SearchForm ? searchForm,
2828 required List <SdkLibraryHit > sdkLibraryHits,
2929 required List <PackageView > packageHits,
30+ required List <String >? nameMatches,
3031}) {
32+ final bestNameMatch =
33+ (nameMatches == null || nameMatches.isEmpty) ? null : nameMatches.first;
3134 return d.div (
3235 classes: ['packages' ],
3336 children: [
3437 ...sdkLibraryHits.map (_sdkLibraryItem),
35- ...packageHits.map ((hit) => _packageItem (hit, searchForm: searchForm)),
38+ ...packageHits.map ((hit) => _packageItem (
39+ hit,
40+ searchForm: searchForm,
41+ isNameMatch: hit.name == bestNameMatch,
42+ )),
3643 imageCarousel (),
3744 ],
3845 );
@@ -48,6 +55,7 @@ d.Node _sdkLibraryItem(SdkLibraryHit hit) {
4855 return _item (
4956 url: hit.url! ,
5057 name: hit.library! ,
58+ isNameMatch: false ,
5159 newTimestamp: null ,
5260 labeledScoresNode: null ,
5361 description: hit.description ?? '' ,
@@ -71,6 +79,7 @@ d.Node _sdkLibraryItem(SdkLibraryHit hit) {
7179d.Node _packageItem (
7280 PackageView view, {
7381 required SearchForm ? searchForm,
82+ required bool isNameMatch,
7483}) {
7584 final isFlutterFavorite = view.tags.contains (PackageTags .isFlutterFavorite);
7685 final isNullSafe = view.tags.contains (PackageVersionTags .isNullSafe);
@@ -177,6 +186,7 @@ d.Node _packageItem(
177186 screenshotDescriptions: screenshotDescriptions,
178187 url: urls.pkgPageUrl (view.name),
179188 name: view.name,
189+ isNameMatch: isNameMatch,
180190 newTimestamp: view.created,
181191 labeledScoresNode: labeledScoresNodeFromPackageView (view),
182192 description: view.ellipsizedDescription ?? '' ,
@@ -207,6 +217,7 @@ d.Node _item({
207217 List <d.Node > topics = const [],
208218 required String url,
209219 required String name,
220+ required bool isNameMatch,
210221 required DateTime ? newTimestamp,
211222 required d.Node ? labeledScoresNode,
212223 required String description,
@@ -230,6 +241,8 @@ d.Node _item({
230241 ], children: [
231242 d.a (href: url, text: name),
232243 if (copyIcon != null ) copyIcon,
244+ d.text (' ' ),
245+ if (isNameMatch) nameMatchBadgeNode,
233246 ]),
234247 if (age != null && age.inDays <= 30 )
235248 d.div (
0 commit comments