Skip to content

Commit cefc18f

Browse files
authored
Cleanup: my-liked experiment + old rendering. (#8962)
1 parent aff77f1 commit cefc18f

File tree

11 files changed

+240
-194
lines changed

11 files changed

+240
-194
lines changed

app/lib/frontend/handlers/account.dart

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -332,43 +332,30 @@ Future<shelf.Response> accountMyLikedPackagesPageHandler(
332332
return redirectResponse(request.requestedUri.path);
333333
}
334334

335-
if (requestContext.experimentalFlags.useMyLikedSearch) {
336-
// redirect to the search page when any search or pagination is present
337-
final searchForm = SearchForm.parse(request.requestedUri.queryParameters);
338-
if (searchForm.isNotEmpty) {
339-
final redirectForm = searchForm.addRequiredTagIfAbsent(
340-
AccountTag.isLikedByMe,
341-
);
342-
return redirectResponse(
343-
redirectForm.toSearchLink(page: searchForm.currentPage),
344-
);
345-
}
346-
347-
final appliedSearchForm = SearchForm().toggleRequiredTag(
335+
// redirect to the search page when any search or pagination is present
336+
final searchForm = SearchForm.parse(request.requestedUri.queryParameters);
337+
if (searchForm.isNotEmpty) {
338+
final redirectForm = searchForm.addRequiredTagIfAbsent(
348339
AccountTag.isLikedByMe,
349340
);
350-
final searchResult = await searchAdapter.search(
351-
appliedSearchForm,
352-
// Do not apply rate limit here.
353-
rateLimitKey: null,
341+
return redirectResponse(
342+
redirectForm.toSearchLink(page: searchForm.currentPage),
354343
);
355-
final html = renderMyLikedPackagesPage(
356-
user: user,
357-
userSessionData: requestContext.sessionData!,
358-
likes: null,
359-
searchForm: appliedSearchForm,
360-
searchResult: searchResult,
361-
);
362-
return htmlResponse(html);
363344
}
364345

365-
final likes = await likeBackend.listPackageLikes(user.userId);
346+
final appliedSearchForm = SearchForm().toggleRequiredTag(
347+
AccountTag.isLikedByMe,
348+
);
349+
final searchResult = await searchAdapter.search(
350+
appliedSearchForm,
351+
// Do not apply rate limit here.
352+
rateLimitKey: null,
353+
);
366354
final html = renderMyLikedPackagesPage(
367355
user: user,
368356
userSessionData: requestContext.sessionData!,
369-
likes: likes,
370-
searchForm: null,
371-
searchResult: null,
357+
searchForm: appliedSearchForm,
358+
searchResult: searchResult,
372359
);
373360
return htmlResponse(html);
374361
}

app/lib/frontend/handlers/experimental.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ typedef PublicFlag = ({String name, String description});
1010

1111
const _publicFlags = <PublicFlag>{
1212
(name: 'example', description: 'Short description'),
13-
(
14-
name: 'my-liked-search',
15-
description: 'New "My liked packages" page and search.',
16-
),
1713
};
1814

1915
final _allFlags = <String>{
@@ -92,8 +88,6 @@ class ExperimentalFlags {
9288

9389
bool get isDarkModeDefault => isEnabled('dark-as-default');
9490

95-
bool get useMyLikedSearch => true;
96-
9791
String encodedAsCookie() => _enabled.join(':');
9892

9993
@override

app/lib/frontend/templates/admin.dart

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:_pub_shared/search/search_form.dart';
77
import 'package:pub_dev/frontend/templates/listing.dart';
88
import 'package:pub_dev/package/search_adapter.dart';
99

10-
import '../../account/models.dart' show LikeData, User, SessionData;
10+
import '../../account/models.dart' show User, SessionData;
1111
import '../../audit/models.dart';
1212
import '../../frontend/templates/views/account/activity_log_table.dart';
1313
import '../../package/models.dart';
@@ -19,7 +19,6 @@ import '_consts.dart';
1919
import 'detail_page.dart';
2020
import 'layout.dart';
2121
import 'views/account/authorized.dart';
22-
import 'views/pkg/liked_package_list.dart';
2322
import 'views/pkg/package_list.dart';
2423
import 'views/publisher/publisher_list.dart';
2524

@@ -100,37 +99,24 @@ String renderAccountPackagesPage({
10099
String renderMyLikedPackagesPage({
101100
required User user,
102101
required SessionData userSessionData,
103-
required List<LikeData>? likes,
104-
required SearchForm? searchForm,
105-
required SearchResultPage? searchResult,
102+
required SearchForm searchForm,
103+
required SearchResultPage searchResult,
106104
}) {
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-
}
105+
final infoNode = listingInfo(
106+
searchForm: searchForm,
107+
totalCount: searchResult.totalCount,
108+
title: 'My liked packages',
109+
messageFromBackend: searchResult.errorMessage,
110+
);
111+
final listNode = packageList(searchResult);
112+
final pagination = searchResult.hasHit
113+
? paginationNode(PageLinks(searchForm, searchResult.totalCount))
114+
: null;
115+
final tabContent = d.fragment([
116+
infoNode,
117+
listNode,
118+
if (pagination != null) pagination,
119+
]);
134120

135121
final content = renderDetailPage(
136122
headerNode: _accountDetailHeader(user, userSessionData),

app/lib/frontend/templates/views/pkg/liked_package_list.dart

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,71 +4,10 @@
44

55
import 'package:_pub_shared/format/number_format.dart';
66

7-
import '../../../../account/models.dart';
8-
import '../../../../shared/urls.dart' as urls;
9-
107
import '../../../dom/dom.dart' as d;
118
import '../../../dom/material.dart' as material;
129
import '../../../static_files.dart' show staticUrls;
1310

14-
/// Renders the package list of /my-liked-packages page.
15-
d.Node likedPackageListNode(List<LikeData> likes) {
16-
final thumbUpOutlinedUrl = staticUrls.getAssetUrl(
17-
'/static/img/thumb-up-24px.svg',
18-
);
19-
final thumbUpFilledUrl = staticUrls.getAssetUrl(
20-
'/static/img/thumb-up-filled-24px.svg',
21-
);
22-
return d.div(
23-
classes: ['packages', '-compact'],
24-
children: likes.map(
25-
(like) => d.div(
26-
classes: ['packages-item'],
27-
children: [
28-
d.div(
29-
classes: ['packages-header'],
30-
children: [
31-
d.h3(
32-
classes: ['packages-title'],
33-
child: d.a(
34-
href: urls.pkgPageUrl(like.package!),
35-
text: like.package,
36-
),
37-
),
38-
d.div(
39-
classes: ['packages-icons'],
40-
child: material.button(
41-
unelevated: true,
42-
customTypeClass: '-pub-like-button',
43-
attributes: {
44-
'data-package': like.package!,
45-
'data-thumb_up_outlined': thumbUpOutlinedUrl,
46-
'data-thumb_up_filled': thumbUpFilledUrl,
47-
},
48-
icon: d.Image(
49-
src: thumbUpFilledUrl,
50-
alt: 'thumb up',
51-
width: 24,
52-
height: 24,
53-
),
54-
label: 'Unlike',
55-
),
56-
),
57-
],
58-
),
59-
d.p(
60-
classes: ['packages-metadata'],
61-
children: [
62-
d.text(' Liked '),
63-
d.xAgoTimestamp(like.created!, datePrefix: 'on'),
64-
],
65-
),
66-
],
67-
),
68-
),
69-
);
70-
}
71-
7211
d.Node renderLikeButtonAndLabel({
7312
required String package,
7413
required int likeCount,

app/lib/frontend/templates/views/pkg/package_list.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:_pub_shared/format/x_ago_format.dart';
66
import 'package:_pub_shared/search/search_form.dart';
77
import 'package:_pub_shared/search/tags.dart';
88
import 'package:clock/clock.dart';
9-
import 'package:pub_dev/frontend/request_context.dart';
109
import 'package:pub_dev/frontend/templates/views/pkg/liked_package_list.dart';
1110

1211
import '../../../../package/models.dart';
@@ -35,11 +34,10 @@ d.Node listOfPackagesNode({
3534
? null
3635
: nameMatches.first;
3736
final listingPackagesLikedByMe =
38-
requestContext.experimentalFlags.useMyLikedSearch &&
39-
(searchForm?.parsedQuery.tagsPredicate.isRequiredTag(
40-
AccountTag.isLikedByMe,
41-
) ??
42-
false);
37+
searchForm?.parsedQuery.tagsPredicate.isRequiredTag(
38+
AccountTag.isLikedByMe,
39+
) ??
40+
false;
4341
return d.div(
4442
classes: ['packages'],
4543
children: [

app/lib/search/search_client.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,9 @@ class SearchClient {
7575
if (hasLikedByMeTag) {
7676
skipCache = true;
7777
}
78-
final useLikedByMe =
79-
hasLikedByMeTag && requestContext.experimentalFlags.useMyLikedSearch;
8078

8179
List<String>? packages;
82-
if (userId != null && useLikedByMe) {
80+
if (userId != null && hasLikedByMeTag) {
8381
final likedPackages = await likeBackend.listPackageLikes(userId);
8482
packages = likedPackages.map((l) => l.package!).toList();
8583
}
@@ -93,7 +91,7 @@ class SearchClient {
9391
return await withRetryHttpClient(
9492
(client) async {
9593
var data = query.toSearchRequestData();
96-
if (userId != null && useLikedByMe) {
94+
if (userId != null && hasLikedByMeTag) {
9795
final newQuery = data.query
9896
?.replaceAll(AccountTag.isLikedByMe, ' ')
9997
.trim();

0 commit comments

Comments
 (0)