Skip to content

Commit

Permalink
refactor: rename DetailPage to SnapPage
Browse files Browse the repository at this point in the history
  • Loading branch information
d-loose committed Sep 14, 2023
1 parent 7d2a94e commit 6d96376
Show file tree
Hide file tree
Showing 15 changed files with 94 additions and 99 deletions.
1 change: 0 additions & 1 deletion lib/detail.dart

This file was deleted.

1 change: 1 addition & 0 deletions lib/snapd.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ export 'src/snapd/snap_category_enum.dart';
export 'src/snapd/snap_l10n.dart';
export 'src/snapd/snap_launcher.dart';
export 'src/snapd/snap_model.dart';
export 'src/snapd/snap_page.dart';
export 'src/snapd/snap_search.dart';
export 'src/snapd/snap_sort.dart';
export 'src/snapd/snapd_service.dart';
Expand Down
8 changes: 3 additions & 5 deletions lib/src/explore/explore_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,11 @@ class _CategorySnapList extends ConsumerWidget {
return showScreenshots
? SnapImageCardGrid(
snaps: snaps,
onTap: (snap) =>
StoreNavigator.pushDetail(context, name: snap.name),
onTap: (snap) => StoreNavigator.pushSnap(context, name: snap.name),
)
: SnapCardGrid(
snaps: snaps,
onTap: (snap) =>
StoreNavigator.pushDetail(context, name: snap.name),
onTap: (snap) => StoreNavigator.pushSnap(context, name: snap.name),
);
}
}
Expand Down Expand Up @@ -269,7 +267,7 @@ class _BannerIconState extends State<_BannerIcon> {
verticalOffset: _kMaxSize / 2,
message: widget.snap.titleOrName,
child: InkWell(
onTap: () => StoreNavigator.pushDetail(context, name: widget.snap.name),
onTap: () => StoreNavigator.pushSnap(context, name: widget.snap.name),
onHover: (hover) {
setState(() => scale = hover ? _kScaleLarge : 1.0);
},
Expand Down
28 changes: 14 additions & 14 deletions lib/src/l10n/app_en.arb
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
{
"appstreamSearchGreylist": "app;application;package;program;programme;suite;tool",
"detailPageChannelLabel": "Channel",
"detailPageConfinementLabel": "Confinement",
"detailPageContactPublisherLabel": "Contact {publisher}",
"@detailPageContactPublisherLabel": {
"snapPageChannelLabel": "Channel",
"snapPageConfinementLabel": "Confinement",
"snapPageContactPublisherLabel": "Contact {publisher}",
"@snapPageContactPublisherLabel": {
"placeholders": {
"publisher": {
"type": "String"
}
}
},
"detailPageDescriptionLabel": "Description",
"detailPageDeveloperWebsiteLabel": "Developer Website",
"detailPageDownloadSizeLabel": "Download Size",
"detailPageGalleryLabel": "Gallery",
"detailPageLicenseLabel": "License",
"detailPageLinksLabel": "Links",
"detailPagePublisherLabel": "Publisher",
"detailPagePublishedLabel": "Published",
"detailPageSummaryLabel": "Summary",
"detailPageVersionLabel": "Version",
"snapPageDescriptionLabel": "Description",
"snapPageDeveloperWebsiteLabel": "Developer Website",
"snapPageDownloadSizeLabel": "Download Size",
"snapPageGalleryLabel": "Gallery",
"snapPageLicenseLabel": "License",
"snapPageLinksLabel": "Links",
"snapPagePublisherLabel": "Publisher",
"snapPagePublishedLabel": "Published",
"snapPageSummaryLabel": "Summary",
"snapPageVersionLabel": "Version",
"explorePageLabel": "Explore",
"explorePageCategoriesLabel": "Categories",
"managePageCheckForUpdates": "Check for updates",
Expand Down
7 changes: 3 additions & 4 deletions lib/src/manage/manage_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ class _ManageSnapTile extends ConsumerWidget {
),
},
leading: Clickable(
onTap: () => StoreNavigator.pushDetail(context, name: snap.name),
onTap: () => StoreNavigator.pushSnap(context, name: snap.name),
child: AppIcon(iconUrl: snap.iconUrl, size: 40),
),
title: Row(
Expand All @@ -338,8 +338,7 @@ class _ManageSnapTile extends ConsumerWidget {
child: Align(
alignment: Alignment.centerLeft,
child: Clickable(
onTap: () =>
StoreNavigator.pushDetail(context, name: snap.name),
onTap: () => StoreNavigator.pushSnap(context, name: snap.name),
child: Text(
snap.titleOrName,
maxLines: 1,
Expand Down Expand Up @@ -429,7 +428,7 @@ class _ManageSnapTile extends ConsumerWidget {
menuChildren: [
MenuItemButton(
onPressed: () =>
StoreNavigator.pushDetail(context, name: snap.name),
StoreNavigator.pushSnap(context, name: snap.name),
child: Text(
l10n.managePageShowDetailsLabel,
style: Theme.of(context).textTheme.bodyMedium,
Expand Down
2 changes: 1 addition & 1 deletion lib/src/search/search_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ class SearchPage extends StatelessWidget {
slivers: [
SnapCardGrid(
snaps: data,
onTap: (snap) => StoreNavigator.pushSearchDetail(
onTap: (snap) => StoreNavigator.pushSearchSnap(
context,
name: snap.name,
query: query,
Expand Down
30 changes: 15 additions & 15 deletions lib/src/detail/detail_page.dart → lib/src/snapd/snap_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ const _kChannelDropdownWidth = 220.0;

typedef SnapInfo = ({String label, Widget value});

class DetailPage extends ConsumerWidget {
const DetailPage({super.key, required this.snapName});
class SnapPage extends ConsumerWidget {
const SnapPage({super.key, required this.snapName});

final String snapName;

Expand Down Expand Up @@ -63,7 +63,7 @@ class _SnapView extends ConsumerWidget {
)
), // Placeholder
(
label: l10n.detailPageConfinementLabel,
label: l10n.snapPageConfinementLabel,
value: Row(
mainAxisSize: MainAxisSize.min,
children: [
Expand All @@ -81,34 +81,34 @@ class _SnapView extends ConsumerWidget {
),
),
(
label: l10n.detailPageDownloadSizeLabel,
label: l10n.snapPageDownloadSizeLabel,
value: Text(
snapModel.channelInfo != null
? context.formatByteSize(snapModel.channelInfo!.size)
: '',
)
),
(
label: l10n.detailPagePublishedLabel,
label: l10n.snapPagePublishedLabel,
value: Text(
snapModel.channelInfo != null
? DateFormat.yMMMd().format(snapModel.channelInfo!.releasedAt)
: '',
),
),
(
label: l10n.detailPageLicenseLabel,
label: l10n.snapPageLicenseLabel,
value: Text(snapModel.snap.license ?? ''),
),
(
label: l10n.detailPageLinksLabel,
label: l10n.snapPageLinksLabel,
value: Column(
children: [
if (snapModel.snap.website != null)
'<a href="${snapModel.snap.website}">${l10n.detailPageDeveloperWebsiteLabel}</a>',
'<a href="${snapModel.snap.website}">${l10n.snapPageDeveloperWebsiteLabel}</a>',
if (snapModel.snap.contact != null &&
snapModel.snap.publisher != null)
'<a href="${snapModel.snap.contact}">${l10n.detailPageContactPublisherLabel(snapModel.snap.publisher!.displayName)}</a>'
'<a href="${snapModel.snap.contact}">${l10n.snapPageContactPublisherLabel(snapModel.snap.publisher!.displayName)}</a>'
]
.map((link) => Html(
data: link,
Expand Down Expand Up @@ -143,14 +143,14 @@ class _SnapView extends ConsumerWidget {
const Divider(),
if (snapModel.hasGallery)
_Section(
header: Text(l10n.detailPageGalleryLabel),
header: Text(l10n.snapPageGalleryLabel),
child: SnapScreenshotGallery(
snap: snapModel.storeSnap!,
height: layout.totalWidth / 2,
),
),
_Section(
header: Text(l10n.detailPageDescriptionLabel),
header: Text(l10n.snapPageDescriptionLabel),
child: SizedBox(
width: double.infinity,
child: MarkdownBody(
Expand Down Expand Up @@ -427,7 +427,7 @@ class _ChannelDropdown extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
children: [
Text(
l10n.detailPageChannelLabel,
l10n.snapPageChannelLabel,
style: Theme.of(context).textTheme.labelLarge,
),
const SizedBox(width: 16),
Expand Down Expand Up @@ -492,9 +492,9 @@ class _ChannelDropdownEntry extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisSize: MainAxisSize.min,
children: [
Text(l10n.detailPageChannelLabel),
Text(l10n.detailPageVersionLabel),
Text(l10n.detailPagePublishedLabel),
Text(l10n.snapPageChannelLabel),
Text(l10n.snapPageVersionLabel),
Text(l10n.snapPagePublishedLabel),
],
),
),
Expand Down
10 changes: 5 additions & 5 deletions lib/src/store/store_app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import 'package:ubuntu_logger/ubuntu_logger.dart';
import 'package:yaru/yaru.dart';
import 'package:yaru_widgets/yaru_widgets.dart';

import '/detail.dart';
import '/l10n.dart';
import '/layout.dart';
import '/search.dart';
import '/snapd.dart';
import 'store_navigator.dart';
import 'store_observer.dart';
import 'store_pages.dart';
Expand Down Expand Up @@ -50,7 +50,7 @@ class _StoreAppState extends ConsumerState<StoreApp> {
child: SearchField(
onSearch: (query) =>
_navigator.pushAndRemoveSearch(query: query),
onSnapSelected: (name) => _navigator.pushDetail(name: name),
onSnapSelected: (name) => _navigator.pushSnap(name: name),
onDebSelected: (_) {
log.debug('Detail page for debs not implemented yet!');
}, // TODO: push detail page
Expand All @@ -71,10 +71,10 @@ class _StoreAppState extends ConsumerState<StoreApp> {
breakpoint: 0, // always landscape
onGenerateRoute: (settings) =>
switch (StoreRoutes.routeOf(settings)) {
StoreRoutes.detail => MaterialPageRoute(
StoreRoutes.snap => MaterialPageRoute(
settings: settings,
builder: (_) => DetailPage(
snapName: StoreRoutes.detailOf(settings)!,
builder: (_) => SnapPage(
snapName: StoreRoutes.snapOf(settings)!,
),
),
StoreRoutes.search => MaterialPageRoute(
Expand Down
16 changes: 8 additions & 8 deletions lib/src/store/store_navigator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ import 'package:flutter/widgets.dart';
import 'store_routes.dart';

class StoreNavigator {
static Future<void> pushDetail(
static Future<void> pushSnap(
BuildContext context, {
required String name,
}) {
return Navigator.of(context).pushDetail(name: name);
return Navigator.of(context).pushSnap(name: name);
}

static Future<void> pushSearch(
Expand All @@ -18,13 +18,13 @@ class StoreNavigator {
return Navigator.of(context).pushSearch(query: query, category: category);
}

static Future<void> pushSearchDetail(
static Future<void> pushSearchSnap(
BuildContext context, {
required String name,
String? query,
String? category,
}) {
return Navigator.of(context).pushSearchDetail(
return Navigator.of(context).pushSearchSnap(
name: name,
query: query,
category: category,
Expand All @@ -33,8 +33,8 @@ class StoreNavigator {
}

extension StoreNavigatorState on NavigatorState {
Future<void> pushDetail({required String name}) {
return pushNamed(StoreRoutes.namedDetail(name: name));
Future<void> pushSnap({required String name}) {
return pushNamed(StoreRoutes.namedSnap(name: name));
}

Future<void> pushSearch({String? query, String? category}) {
Expand All @@ -48,12 +48,12 @@ extension StoreNavigatorState on NavigatorState {
);
}

Future<void> pushSearchDetail({
Future<void> pushSearchSnap({
required String name,
String? query,
String? category,
}) {
return pushNamed(StoreRoutes.namedSearchDetail(
return pushNamed(StoreRoutes.namedSearchSnap(
name: name,
query: query,
category: category,
Expand Down
4 changes: 2 additions & 2 deletions lib/src/store/store_providers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ String? _parseRoute(List<String>? args) {
if (args?.firstOrNull?.startsWith(_kUrlPrefix) ?? false) {
final snap = args!.first.split(_kUrlPrefix)[1];
if (snap.isNotEmpty) {
return StoreRoutes.namedDetail(name: snap);
return StoreRoutes.namedSnap(name: snap);
}
}
final result = parser.parse(args ?? []);
Expand All @@ -45,7 +45,7 @@ String? _parseRoute(List<String>? args) {

final snap = result['snap'] as String? ?? result.rest.singleOrNull;
if (snap != null) {
return StoreRoutes.namedDetail(name: snap);
return StoreRoutes.namedSnap(name: snap);
}
} on FormatException {
// TODO: print usage
Expand Down
15 changes: 7 additions & 8 deletions lib/src/store/store_routes.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import 'package:flutter/widgets.dart';

// TODO: sort out "snap" vs. "detail"
abstract class StoreRoutes {
static const explore = '/explore';
static const detail = '/detail';
static const snap = '/snap';
static const manage = '/manage';
static const search = '/search';

static bool isDetail(RouteSettings route) => routeOf(route) == detail;
static bool isSnap(RouteSettings route) => routeOf(route) == snap;
static bool isSearch(RouteSettings route) => routeOf(route) == search;

static String routeOf(RouteSettings route) =>
Expand All @@ -16,7 +15,7 @@ abstract class StoreRoutes {
static String? categoryOf(RouteSettings route) =>
Uri.parse(route.name ?? '').queryParameters['category'];

static String? detailOf(RouteSettings route) =>
static String? snapOf(RouteSettings route) =>
Uri.parse(route.name ?? '').queryParameters['snap'];

static String? queryOf(RouteSettings route) =>
Expand All @@ -26,8 +25,8 @@ abstract class StoreRoutes {
return Uri(path: path, queryParameters: params).toString();
}

static String namedDetail({required String name}) {
return namedRoute(StoreRoutes.detail, {'snap': name});
static String namedSnap({required String name}) {
return namedRoute(StoreRoutes.snap, {'snap': name});
}

static String namedSearch({String? query, String? category}) {
Expand All @@ -37,12 +36,12 @@ abstract class StoreRoutes {
});
}

static String namedSearchDetail({
static String namedSearchSnap({
required String name,
String? query,
String? category,
}) {
return namedRoute(StoreRoutes.detail, {
return namedRoute(StoreRoutes.snap, {
'snap': name,
if (query != null) 'query': query,
if (category != null) 'category': category,
Expand Down
4 changes: 2 additions & 2 deletions test/initial_route_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ void main() {
fireImmediately: true,
);

verify(listener(null, StoreRoutes.namedDetail(name: 'bar'))).called(1);
verify(listener(null, StoreRoutes.namedSnap(name: 'bar'))).called(1);
});

test('snap url', () {
Expand All @@ -54,7 +54,7 @@ void main() {
fireImmediately: true,
);

verify(listener(null, StoreRoutes.namedDetail(name: 'bar'))).called(1);
verify(listener(null, StoreRoutes.namedSnap(name: 'bar'))).called(1);
});

test('no arguments', () {
Expand Down
Loading

0 comments on commit 6d96376

Please sign in to comment.