33// BSD-style license that can be found in the LICENSE file.
44
55import 'package:_pub_shared/data/page_data.dart' ;
6+ import 'package:_pub_shared/search/search_form.dart' ;
7+ import 'package:pub_dev/frontend/templates/listing.dart' ;
8+ import 'package:pub_dev/package/search_adapter.dart' ;
69
710import '../../account/models.dart' show LikeData, User, SessionData;
811import '../../audit/models.dart' ;
@@ -97,16 +100,38 @@ String renderAccountPackagesPage({
97100String renderMyLikedPackagesPage ({
98101 required User user,
99102 required SessionData userSessionData,
100- required List <LikeData > likes,
103+ required List <LikeData >? likes,
104+ required SearchForm ? searchForm,
105+ required SearchResultPage ? searchResult,
101106}) {
102- final resultCount = likes.isNotEmpty
103- ? d.p (
104- text:
105- 'You like ${likes .length } ${likes .length == 1 ? 'package' : 'packages' }.' ,
106- )
107- : d.p (text: 'You have not liked any packages yet.' );
108-
109- final tabContent = d.fragment ([resultCount, likedPackageListNode (likes)]);
107+ late d.Node tabContent;
108+ if (likes != null ) {
109+ final resultCount = likes.isNotEmpty
110+ ? d.p (
111+ text:
112+ 'You like ${likes .length } ${likes .length == 1 ? 'package' : 'packages' }.' ,
113+ )
114+ : d.p (text: 'You have not liked any packages yet.' );
115+
116+ tabContent = d.fragment ([resultCount, likedPackageListNode (likes)]);
117+ } else {
118+ final infoNode = listingInfo (
119+ searchForm: searchForm! ,
120+ totalCount: searchResult! .totalCount,
121+ title: 'My liked packages' ,
122+ messageFromBackend: searchResult.errorMessage,
123+ );
124+ final listNode = packageList (searchResult);
125+ final pagination = searchResult.hasHit
126+ ? paginationNode (PageLinks (searchForm, searchResult.totalCount))
127+ : null ;
128+ tabContent = d.fragment ([
129+ infoNode,
130+ listNode,
131+ if (pagination != null ) pagination,
132+ ]);
133+ }
134+
110135 final content = renderDetailPage (
111136 headerNode: _accountDetailHeader (user, userSessionData),
112137 tabs: [
@@ -129,6 +154,7 @@ String renderMyLikedPackagesPage({
129154 noIndex: true ,
130155 mainClasses: [wideHeaderDetailPageClassName],
131156 pageData: PageData (sessionAware: true ),
157+ searchForm: searchForm,
132158 );
133159}
134160
0 commit comments