Сake pay filter white screen bug (#491)

* increase touch area for filter button

* rework card list view model

* fix button color

* fix formating
This commit is contained in:
Serhii
2022-09-02 16:04:19 +01:00
committed by GitHub
parent 278695005c
commit 424cf25052
5 changed files with 87 additions and 119 deletions
@@ -1,5 +1,3 @@
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/ionia/ionia_category.dart';
import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/ionia/ionia_merchant.dart';
import 'package:cake_wallet/routes.dart';
@@ -13,7 +11,6 @@ import 'package:cake_wallet/utils/debounce.dart';
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/ionia/ionia_gift_cards_list_view_model.dart';
import 'package:cake_wallet/view_model/ionia/ionia_filter_view_model.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/generated/i18n.dart';
@@ -28,6 +25,9 @@ class IoniaManageCardsPage extends BasePage {
});
}
});
_cardsListViewModel.getMerchants();
}
final IoniaGiftCardsListViewModel _cardsListViewModel;
@@ -108,15 +108,27 @@ class IoniaManageCardsPage extends BasePage {
@override
Widget body(BuildContext context) {
final filterIcon = InkWell(
final filterButton = InkWell(
onTap: () async {
final selectedFilters = await showCategoryFilter(context, _cardsListViewModel);
_cardsListViewModel.setSelectedFilter(selectedFilters);
await showCategoryFilter(context);
_cardsListViewModel.getMerchants();
},
child: Image.asset(
'assets/images/filter.png',
color: Theme.of(context).textTheme.caption.decorationColor,
));
child: Container(
width: 32,
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.15),
border: Border.all(
color: Colors.white.withOpacity(0.2),
),
borderRadius: BorderRadius.circular(10),
),
child: Image.asset(
'assets/images/filter.png',
color: Theme.of(context).textTheme.caption.decorationColor,
),
)
);
return Padding(
padding: const EdgeInsets.all(14.0),
@@ -132,18 +144,7 @@ class IoniaManageCardsPage extends BasePage {
controller: _searchController,
)),
SizedBox(width: 10),
Container(
width: 32,
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Theme.of(context).textTheme.title.backgroundColor,
border: Border.all(
color: Colors.white.withOpacity(0.2),
),
borderRadius: BorderRadius.circular(10),
),
child: filterIcon,
)
filterButton
],
),
),
@@ -158,16 +159,12 @@ class IoniaManageCardsPage extends BasePage {
);
}
Future<List<IoniaCategory>> showCategoryFilter(
BuildContext context,
IoniaGiftCardsListViewModel viewModel,
) async {
return await showPopUp<List<IoniaCategory>>(
Future <void> showCategoryFilter(BuildContext context) async {
return showPopUp<void>(
context: context,
builder: (BuildContext context) {
return IoniaFilterModal(
filterViewModel: getIt.get<IoniaFilterViewModel>(),
selectedCategories: viewModel.selectedFilters,
ioniaGiftCardsListViewModel: _cardsListViewModel,
);
},
);
@@ -1,22 +1,18 @@
import 'package:cake_wallet/ionia/ionia_category.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/rounded_checkbox.dart';
import 'package:cake_wallet/view_model/ionia/ionia_filter_view_model.dart';
import 'package:cake_wallet/src/widgets/alert_background.dart';
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/view_model/ionia/ionia_gift_cards_list_view_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/palette.dart';
class IoniaFilterModal extends StatelessWidget {
IoniaFilterModal({
@required this.filterViewModel,
@required this.selectedCategories,
}) {
filterViewModel.setSelectedCategories(this.selectedCategories);
IoniaFilterModal({@required this.ioniaGiftCardsListViewModel}){
ioniaGiftCardsListViewModel.resetIoniaCategories();
}
final IoniaFilterViewModel filterViewModel;
final List<IoniaCategory> selectedCategories;
final IoniaGiftCardsListViewModel ioniaGiftCardsListViewModel;
@override
Widget build(BuildContext context) {
@@ -48,7 +44,7 @@ class IoniaFilterModal extends StatelessWidget {
child: Padding(
padding: const EdgeInsets.only(left: 24, right: 24),
child: TextField(
onChanged: filterViewModel.onSearchFilter,
onChanged: ioniaGiftCardsListViewModel.onSearchFilter,
style: textMedium(
color: Theme.of(context).primaryTextTheme.title.color,
),
@@ -73,13 +69,13 @@ class IoniaFilterModal extends StatelessWidget {
return ListView.builder(
padding: EdgeInsets.zero,
shrinkWrap: true,
itemCount: filterViewModel.ioniaCategories.length,
itemCount: ioniaGiftCardsListViewModel.ioniaCategories.length,
itemBuilder: (_, index) {
final category = filterViewModel.ioniaCategories[index];
final category = ioniaGiftCardsListViewModel.ioniaCategories[index];
return Padding(
padding: const EdgeInsets.only(left: 24, right: 24, bottom: 24),
child: InkWell(
onTap: () => filterViewModel.selectFilter(category),
onTap: () => ioniaGiftCardsListViewModel.setSelectedFilter(category),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
@@ -98,9 +94,9 @@ class IoniaFilterModal extends StatelessWidget {
],
),
Observer(builder: (_) {
final value = filterViewModel.selectedIndices;
final value = ioniaGiftCardsListViewModel.selectedIndices;
return RoundedCheckbox(
value: value.contains(category.index),
value: value.contains(category),
);
}),
],
@@ -114,13 +110,13 @@ class IoniaFilterModal extends StatelessWidget {
),
),
InkWell(
onTap: () => Navigator.pop(context, filterViewModel.selectedCategories),
onTap: () => Navigator.pop(context),
child: Container(
margin: EdgeInsets.only(bottom: 40),
child: CircleAvatar(
child: Icon(
Icons.close,
color: Colors.black,
color: Palette.darkBlueCraiola,
),
backgroundColor: Colors.white,
),