Add OrdinalSortKey to Shrine shopping cart (#295)

pull/298/head
Per Classon 5 years ago committed by GitHub
parent 5d007aeb86
commit ceaae3debb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,6 +11,8 @@ import 'package:gallery/studies/shrine/model/app_state_model.dart';
import 'package:gallery/studies/shrine/supplemental/asymmetric_view.dart';
import 'package:scoped_model/scoped_model.dart';
const _ordinalSortKeyName = 'home';
class ProductPage extends StatelessWidget {
const ProductPage();
@ -52,14 +54,14 @@ class HomePage extends StatelessWidget {
Semantics(
container: true,
child: backdrop,
sortKey: OrdinalSortKey(1),
sortKey: OrdinalSortKey(1, name: _ordinalSortKeyName),
),
ExcludeSemantics(child: scrim),
Align(
child: Semantics(
container: true,
child: expandingBottomSheet,
sortKey: OrdinalSortKey(0),
sortKey: OrdinalSortKey(0, name: _ordinalSortKeyName),
),
alignment: isDesktop
? AlignmentDirectional.topEnd

@ -15,6 +15,7 @@ import 'package:gallery/studies/shrine/theme.dart';
import 'package:gallery/l10n/gallery_localizations.dart';
const _startColumnWidth = 60.0;
const _ordinalSortKeyName = 'shopping_cart';
class ShoppingCartPage extends StatefulWidget {
@override
@ -39,7 +40,6 @@ class _ShoppingCartPageState extends State<ShoppingCartPage> {
@override
Widget build(BuildContext context) {
final ThemeData localTheme = Theme.of(context);
return Scaffold(
backgroundColor: shrinePink50,
body: SafeArea(
@ -50,38 +50,47 @@ class _ShoppingCartPageState extends State<ShoppingCartPage> {
children: [
ListView(
children: [
Row(
children: [
SizedBox(
width: _startColumnWidth,
child: IconButton(
icon: const Icon(Icons.keyboard_arrow_down),
onPressed: () =>
ExpandingBottomSheet.of(context).close(),
tooltip: GalleryLocalizations.of(context)
.shrineTooltipCloseCart,
Semantics(
sortKey: OrdinalSortKey(0, name: _ordinalSortKeyName),
child: Row(
children: [
SizedBox(
width: _startColumnWidth,
child: IconButton(
icon: const Icon(Icons.keyboard_arrow_down),
onPressed: () =>
ExpandingBottomSheet.of(context).close(),
tooltip: GalleryLocalizations.of(context)
.shrineTooltipCloseCart,
),
),
),
Text(
GalleryLocalizations.of(context)
.shrineCartPageCaption,
style: localTheme.textTheme.subhead
.copyWith(fontWeight: FontWeight.w600),
),
const SizedBox(width: 16),
Text(
GalleryLocalizations.of(context)
.shrineCartItemCount(
model.totalCartQuantity,
Text(
GalleryLocalizations.of(context)
.shrineCartPageCaption,
style: localTheme.textTheme.subhead
.copyWith(fontWeight: FontWeight.w600),
),
),
],
const SizedBox(width: 16),
Text(
GalleryLocalizations.of(context)
.shrineCartItemCount(
model.totalCartQuantity,
),
),
],
),
),
const SizedBox(height: 16),
Column(
children: _createShoppingCartRows(model),
Semantics(
sortKey: OrdinalSortKey(1, name: _ordinalSortKeyName),
child: Column(
children: _createShoppingCartRows(model),
),
),
Semantics(
sortKey: OrdinalSortKey(2, name: _ordinalSortKeyName),
child: ShoppingCartSummary(model: model),
),
ShoppingCartSummary(model: model),
const SizedBox(height: 100),
],
),
@ -89,24 +98,27 @@ class _ShoppingCartPageState extends State<ShoppingCartPage> {
bottom: 16,
start: 16,
end: 16,
child: RaisedButton(
shape: const BeveledRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(7)),
),
color: shrinePink100,
splashColor: shrineBrown600,
child: Padding(
padding: EdgeInsets.symmetric(vertical: 12),
child: Text(
GalleryLocalizations.of(context)
.shrineCartClearButtonCaption,
style: TextStyle(letterSpacing: largeLetterSpacing),
child: Semantics(
sortKey: OrdinalSortKey(3, name: _ordinalSortKeyName),
child: RaisedButton(
shape: const BeveledRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(7)),
),
color: shrinePink100,
splashColor: shrineBrown600,
child: Padding(
padding: EdgeInsets.symmetric(vertical: 12),
child: Text(
GalleryLocalizations.of(context)
.shrineCartClearButtonCaption,
style: TextStyle(letterSpacing: largeLetterSpacing),
),
),
onPressed: () {
model.clearCart();
ExpandingBottomSheet.of(context).close();
},
),
onPressed: () {
model.clearCart();
ExpandingBottomSheet.of(context).close();
},
),
),
],

Loading…
Cancel
Save