Commit fabd3fc0 authored by Dio Maulana's avatar Dio Maulana

home page fix

parent 21db6841
{ {
"base_url": "https://romi-dev2.ravku.com/", "base_url": "https://romi-dev2.ravku.com/",
"title": "Ravintola Dev BYOD", "title": "Ravintola Dev BYOD",
"isResponsive": true, "isResponsive": false,
"debug": true "debug": true
} }
\ No newline at end of file
...@@ -335,6 +335,7 @@ class Api { ...@@ -335,6 +335,7 @@ class Api {
"sold_in_store": false, "sold_in_store": false,
"type": typeCategory, "type": typeCategory,
"category_name": dataCat[d]['name'], "category_name": dataCat[d]['name'],
"category_id": dataCat[d]['id'],
"description": '', "description": '',
"group_id": '', "group_id": '',
"group_name": '', "group_name": '',
...@@ -391,6 +392,7 @@ class Api { ...@@ -391,6 +392,7 @@ class Api {
"sold_in_store": false, "sold_in_store": false,
"type": typeGroup, "type": typeGroup,
"category_name": dataCat[d]['name'], "category_name": dataCat[d]['name'],
"category_id": dataCat[d]['id'],
"description": '', "description": '',
"group_id": menuList[i]['group_id'], "group_id": menuList[i]['group_id'],
"group_name": menuList[i]['group_name'], "group_name": menuList[i]['group_name'],
...@@ -411,6 +413,7 @@ class Api { ...@@ -411,6 +413,7 @@ class Api {
"sold_in_store": menuList[i]['sold_in_store'], "sold_in_store": menuList[i]['sold_in_store'],
"type": typeMenu, "type": typeMenu,
"category_name": dataCat[d]['name'], "category_name": dataCat[d]['name'],
"category_id": dataCat[d]['id'],
"description": menuList[i]['description'], "description": menuList[i]['description'],
"group_name": menuList[i]['group_name'], "group_name": menuList[i]['group_name'],
"group_id": menuList[i]['group_id'], "group_id": menuList[i]['group_id'],
...@@ -437,6 +440,7 @@ class Api { ...@@ -437,6 +440,7 @@ class Api {
"sold_in_store": false, "sold_in_store": false,
"type": typeCategory, "type": typeCategory,
"category_name": favGroup[s]['name'], "category_name": favGroup[s]['name'],
"category_id": favGroup[s]['id'],
"description": '', "description": '',
"group_id": '', "group_id": '',
"group_name": '', "group_name": '',
...@@ -486,6 +490,7 @@ class Api { ...@@ -486,6 +490,7 @@ class Api {
"sold_in_store": false, "sold_in_store": false,
"type": typeGroup, "type": typeGroup,
"category_name": favGroup[s]['name'], "category_name": favGroup[s]['name'],
"category_id": favGroup[s]['id'],
"description": '', "description": '',
"group_id": favDetail[i]['group_id'], "group_id": favDetail[i]['group_id'],
"group_name": favDetail[i]['group_name'], "group_name": favDetail[i]['group_name'],
...@@ -507,6 +512,7 @@ class Api { ...@@ -507,6 +512,7 @@ class Api {
"sold_in_store": favDetail[i]['sold_in_store'], "sold_in_store": favDetail[i]['sold_in_store'],
"type": typeMenu, "type": typeMenu,
"category_name": favGroup[s]['name'], "category_name": favGroup[s]['name'],
"category_id": favGroup[s]['id'],
"description": favDetail[i]['description'], "description": favDetail[i]['description'],
"group_name": favDetail[i]['group_name'], "group_name": favDetail[i]['group_name'],
"group_id": favDetail[i]['group_id'], "group_id": favDetail[i]['group_id'],
...@@ -532,6 +538,7 @@ class Api { ...@@ -532,6 +538,7 @@ class Api {
isSell: false, isSell: false,
type: typeCategory, type: typeCategory,
categoryName: '', categoryName: '',
categoryId: '',
description: '', description: '',
groupId: '', groupId: '',
groupName: '', groupName: '',
......
...@@ -26,8 +26,29 @@ import 'package:byod/models/filter_menu.dart'; ...@@ -26,8 +26,29 @@ import 'package:byod/models/filter_menu.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
class SearchMenu extends Cubit<List<dynamic>> { class SearchMenu extends Cubit<List<dynamic>> {
SearchMenu() : super([[], 'All', false]); SearchMenu()
// return arraynya [list<Category>, SelectedCat, bool dari ini lagi search by text or not,] : super([
[
FilterMenu(
id: 'start',
name: '',
price: '',
originalPrice: '',
imageUrlMedium: '',
imageUrlThumbnail: '',
isSell: false,
type: typeMenu,
categoryName: '',
categoryId: '',
description: '',
groupName: '',
groupId: '',
)
],
'All',
false
]);
// return arraynya [list<Category>, SelectedCat, bool dari search by text(typing) or not,]
void searchMenu( void searchMenu(
List<FilterMenu> oldMenu, { List<FilterMenu> oldMenu, {
...@@ -63,22 +84,11 @@ class SearchMenu extends Cubit<List<dynamic>> { ...@@ -63,22 +84,11 @@ class SearchMenu extends Cubit<List<dynamic>> {
if (indexGroupId == -1 && indexGroup != -1) { if (indexGroupId == -1 && indexGroup != -1) {
searchMenu.add(oldMenu[indexGroup]); searchMenu.add(oldMenu[indexGroup]);
} }
searchMenu.add(x); searchMenu.add(x);
} }
// for (var menu in x.menu) {
// if (menu.name.toLowerCase().contains(keyword.toLowerCase())) {
// // searchMenu.add(menu);
// menuSearch.add(menu);
// var x = {
// "id": cat.id,
// "name": cat.name,
// "menu": menuSearch,
// };
// searchMenu.add(Category.createCategory(x));
// }
// }
} }
} else {
searchMenu = oldMenu;
} }
} else { } else {
if (categorySelected != '') { if (categorySelected != '') {
......
...@@ -249,6 +249,8 @@ const textColorTabel = Color(0xff333333); ...@@ -249,6 +249,8 @@ const textColorTabel = Color(0xff333333);
const textColorBlack = Color(0xff000000); const textColorBlack = Color(0xff000000);
const textColorRed = Color(0xffE73636); const textColorRed = Color(0xffE73636);
const textGrey = Color(0xffE0E0E0); const textGrey = Color(0xffE0E0E0);
const textGreyDeskripsi = Color(0xffBDBDBD);
const backgroundColorBottomSheet = Color(0xffE5E5E5);
const textColorModalHeaderNama = Color(0xffCCCCFF); const textColorModalHeaderNama = Color(0xffCCCCFF);
const gridCardBackgroundColor = Color(0xffFFFFFF); const gridCardBackgroundColor = Color(0xffFFFFFF);
Color buttonColor = Color buttonColor =
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../helper.dart';
class PoniBottomSheet extends StatelessWidget { class PoniBottomSheet extends StatelessWidget {
const PoniBottomSheet({Key? key}) : super(key: key); const PoniBottomSheet({Key? key}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double widthScreen = responsiveWidthScreen(context);
return Container( return Container(
width: widthScreen * 0.3, width: 50,
height: MediaQuery.of(context).size.height * 0.008, height: 3,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(roundedButton), borderRadius: BorderRadius.circular(7),
color: Colors.grey), color: const Color(0xffD9D9D9)),
// child: Divider( // child: Divider(
// color: buttonColor.withOpacity(0.6), // color: buttonColor.withOpacity(0.6),
// thickness: MediaQuery.of(context).size.height * 0.008, // thickness: MediaQuery.of(context).size.height * 0.008,
......
...@@ -162,11 +162,12 @@ TextStyle deskripsiMenuStyle({ ...@@ -162,11 +162,12 @@ TextStyle deskripsiMenuStyle({
TextStyle amountMenuStyle({ TextStyle amountMenuStyle({
font = 16, font = 16,
Color color = textColorBlack, Color color = textColorBlack,
FontWeight fontWeight = FontWeight.w300,
}) { }) {
return TextStyle( return TextStyle(
fontFamily: (fontFamily == '') ? null : fontFamily, fontFamily: (fontFamily == '') ? null : fontFamily,
fontSize: font, fontSize: font,
fontWeight: FontWeight.w300, fontWeight: fontWeight,
color: color, color: color,
); );
} }
...@@ -212,7 +213,7 @@ TextStyle textCountItem({ ...@@ -212,7 +213,7 @@ TextStyle textCountItem({
Color color = textInButton, Color color = textInButton,
}) { }) {
return TextStyle( return TextStyle(
fontFamily: 'Robot', fontFamily: 'Roboto',
fontSize: font, fontSize: font,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: color, color: color,
...@@ -350,6 +351,24 @@ Text textAmountMenu(BuildContext context, int amount) { ...@@ -350,6 +351,24 @@ Text textAmountMenu(BuildContext context, int amount) {
// ); // );
} }
TextStyle textDeskripsiHeader() {
return const TextStyle(
fontFamily: 'Roboto',
fontWeight: FontWeight.w500,
fontSize: 14,
color: textColorBlack,
);
}
TextStyle textDeskripsi() {
return const TextStyle(
fontFamily: 'Roboto',
fontWeight: FontWeight.w400,
fontSize: 14,
color: textGreyDeskripsi,
);
}
Text textAmountCoret(BuildContext context, int hargaCoret) { Text textAmountCoret(BuildContext context, int hargaCoret) {
return defaultText( return defaultText(
context, context,
...@@ -398,7 +417,7 @@ Text textMenuNameBottomShetModalMenu(BuildContext context, String text) { ...@@ -398,7 +417,7 @@ Text textMenuNameBottomShetModalMenu(BuildContext context, String text) {
text, text,
maxLines: 2, maxLines: 2,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
style: textStyleMenuList(context), style: menuNameBottomSheet(),
); );
// return Text( // return Text(
// text, // text,
...@@ -408,6 +427,15 @@ Text textMenuNameBottomShetModalMenu(BuildContext context, String text) { ...@@ -408,6 +427,15 @@ Text textMenuNameBottomShetModalMenu(BuildContext context, String text) {
// ); // );
} }
TextStyle menuNameBottomSheet() {
return const TextStyle(
fontFamily: 'Roboto',
fontWeight: FontWeight.w500,
fontSize: 28,
color: textColorBlack,
);
}
Text textDescriptionBottomShetModalMenu(BuildContext context, String text) { Text textDescriptionBottomShetModalMenu(BuildContext context, String text) {
return defaultText( return defaultText(
context, context,
......
...@@ -10,6 +10,7 @@ class FilterMenu { ...@@ -10,6 +10,7 @@ class FilterMenu {
final bool isSell; final bool isSell;
final int type; final int type;
final String categoryName; final String categoryName;
final String categoryId;
final String description; final String description;
final String groupName; final String groupName;
final String groupId; final String groupId;
...@@ -28,6 +29,7 @@ class FilterMenu { ...@@ -28,6 +29,7 @@ class FilterMenu {
required this.isSell, required this.isSell,
required this.type, required this.type,
required this.categoryName, required this.categoryName,
required this.categoryId,
required this.description, required this.description,
required this.groupName, required this.groupName,
required this.groupId, required this.groupId,
...@@ -48,16 +50,17 @@ class FilterMenu { ...@@ -48,16 +50,17 @@ class FilterMenu {
isSell: json['sold_in_store'], isSell: json['sold_in_store'],
type: json['type'], type: json['type'],
categoryName: json['category_name'], categoryName: json['category_name'],
categoryId: json['category_id'],
description: json['description'], description: json['description'],
groupName: json['group_name'], groupName: json['group_name'],
groupId: json['group_id'], groupId: json['group_id'],
isFavMenu: (json['is_fav'] == null) ? false : json['is_fav'], isFavMenu: (json['is_fav'] == null) ? false : json['is_fav'],
variantCat: json['variant_cat'], variantCat: json['variant_cat'],
favGroupId: (json['favorite_group_id'] == null) favGroupId:
? '' (json['favorite_group_id'] == null) ? '' : json['favorite_group_id'],
: json['favorite_group_id'],
favGroupName: (json['favorite_group_name'] == null) favGroupName: (json['favorite_group_name'] == null)
? '' ? ''
: json['favorite_group_name']); : json['favorite_group_name'],
);
} }
} }
This diff is collapsed.
// ignore_for_file: must_be_immutable // ignore_for_file: must_be_immutable
import 'package:byod/bloc/menu_selected_bar.dart'; import 'package:byod/bloc/menu_selected_bar.dart';
import 'package:byod/models/fav_group.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
...@@ -10,9 +11,15 @@ import '../../models/category_list.dart'; ...@@ -10,9 +11,15 @@ import '../../models/category_list.dart';
class CategoryListHome extends StatefulWidget { class CategoryListHome extends StatefulWidget {
List<CategoryList> categoryList; List<CategoryList> categoryList;
List<FavoriteGroup> favList;
ScrollController scrollController;
// ScrollController scrollControllerMenu;
CategoryListHome({ CategoryListHome({
Key? key, Key? key,
required this.categoryList, required this.categoryList,
required this.scrollController,
required this.favList,
// required this.scrollControllerMenu,
}) : super(key: key); }) : super(key: key);
@override @override
...@@ -21,14 +28,7 @@ class CategoryListHome extends StatefulWidget { ...@@ -21,14 +28,7 @@ class CategoryListHome extends StatefulWidget {
class _CategoryListHomeState extends State<CategoryListHome> { class _CategoryListHomeState extends State<CategoryListHome> {
int selectedIndex = 0; int selectedIndex = 0;
List<String> catMenu = [
'All Item',
'New',
'Discount',
'Food',
'Beverage',
'Additional'
];
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<MenuSelectedBar, List<dynamic>>( return BlocBuilder<MenuSelectedBar, List<dynamic>>(
...@@ -40,15 +40,25 @@ class _CategoryListHomeState extends State<CategoryListHome> { ...@@ -40,15 +40,25 @@ class _CategoryListHomeState extends State<CategoryListHome> {
itemBuilder: (context, i) { itemBuilder: (context, i) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
context context
.read<MenuSelectedBar>() .read<MenuSelectedBar>()
.selectedBarMenu(i, widget.categoryList[i].name); .selectedBarMenu(i, widget.categoryList[i].id);
widget.scrollController.animateTo(
(widget.favList.isNotEmpty) ? 371 : 0,
duration: Duration(milliseconds: animatedTime),
curve: Curves.fastOutSlowIn,
);
}, },
child: Container( child: Container(
color: backgroundColor, color: backgroundColor,
margin: EdgeInsets.only( margin: EdgeInsets.only(
left: (i == 0) ? 0 : 28.335, left: (i == 0) ? 0 : 28.335,
right: (i == catMenu.length - 1) ? 0 : 28.335), right: (i == widget.categoryList.length - 1) ? 0 : 28.335),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
......
...@@ -60,12 +60,17 @@ class FavGridMenu extends StatelessWidget { ...@@ -60,12 +60,17 @@ class FavGridMenu extends StatelessWidget {
height: widthGrid - (2 * paddingLeftRigthGrid), height: widthGrid - (2 * paddingLeftRigthGrid),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
// color: Colors.red, color: disabledColor.withOpacity(0.8),
), ),
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
showModalBottomSheet( showModalBottomSheet(
backgroundColor: backgroundColor.withOpacity(0), backgroundColor: Colors.white,
isScrollControlled: true, isScrollControlled: true,
context: context, context: context,
builder: (context) { builder: (context) {
...@@ -88,11 +93,15 @@ class FavGridMenu extends StatelessWidget { ...@@ -88,11 +93,15 @@ class FavGridMenu extends StatelessWidget {
}, },
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
child: Image( child: (categoryFavAfterSelect[i].imageUrlMedium != '')
? Image(
fit: BoxFit.fill, fit: BoxFit.fill,
image: image: NetworkImage(
NetworkImage(categoryFavAfterSelect[i].imageUrlMedium), categoryFavAfterSelect[i].imageUrlMedium),
), )
: const Image(
fit: BoxFit.fill,
image: AssetImage('assets/noimage.png')),
), ),
), ),
), ),
...@@ -177,6 +186,11 @@ class FavGridMenu extends StatelessWidget { ...@@ -177,6 +186,11 @@ class FavGridMenu extends StatelessWidget {
? GestureDetector( ? GestureDetector(
key: const Key('AddButton'), key: const Key('AddButton'),
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
if (menuFav.isSell) { if (menuFav.isSell) {
if (menuFav.variantCat.isNotEmpty) { if (menuFav.variantCat.isNotEmpty) {
if (indexListOrderan == -1) { if (indexListOrderan == -1) {
...@@ -273,6 +287,11 @@ class FavGridMenu extends StatelessWidget { ...@@ -273,6 +287,11 @@ class FavGridMenu extends StatelessWidget {
children: [ children: [
GestureDetector( GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
showModalBottomSheet( showModalBottomSheet(
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
isScrollControlled: true, isScrollControlled: true,
...@@ -310,6 +329,11 @@ class FavGridMenu extends StatelessWidget { ...@@ -310,6 +329,11 @@ class FavGridMenu extends StatelessWidget {
), ),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
if (initialValue > 0) { if (initialValue > 0) {
initialValue -= 1; initialValue -= 1;
context.read<OrdersBloc>().insertData([ context.read<OrdersBloc>().insertData([
...@@ -350,6 +374,11 @@ class FavGridMenu extends StatelessWidget { ...@@ -350,6 +374,11 @@ class FavGridMenu extends StatelessWidget {
), ),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
initialValue += 1; initialValue += 1;
context.read<OrdersBloc>().insertData([ context.read<OrdersBloc>().insertData([
[ [
......
...@@ -30,6 +30,11 @@ class _FavoriteListState extends State<FavoriteList> { ...@@ -30,6 +30,11 @@ class _FavoriteListState extends State<FavoriteList> {
itemBuilder: (context, i) { itemBuilder: (context, i) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
context context
.read<FavSelectedBar>() .read<FavSelectedBar>()
.selectedBarFav(i, widget.favoriteList[i].id); .selectedBarFav(i, widget.favoriteList[i].id);
......
// ignore_for_file: sized_box_for_whitespace // ignore_for_file: sized_box_for_whitespace
import 'package:byod/bloc/order_bloc.dart'; import 'package:byod/bloc/order_bloc.dart';
import 'package:byod/helper/widget/poni_bottom_sheet.dart';
import 'package:byod/models/orders.dart'; import 'package:byod/models/orders.dart';
import 'package:byod/ui/home/variant_cat.dart'; import 'package:byod/ui/home/variant_cat.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -13,6 +14,7 @@ import '../../helper/widget/style.dart'; ...@@ -13,6 +14,7 @@ import '../../helper/widget/style.dart';
import '../../models/filter_menu.dart'; import '../../models/filter_menu.dart';
import '../../models/order_details.dart'; import '../../models/order_details.dart';
import '../../models/order_variants.dart'; import '../../models/order_variants.dart';
import 'bottom_sheet_menu.dart';
import 'bottom_sheet_variant.dart'; import 'bottom_sheet_variant.dart';
class MenuListUtama extends StatelessWidget { class MenuListUtama extends StatelessWidget {
...@@ -20,10 +22,14 @@ class MenuListUtama extends StatelessWidget { ...@@ -20,10 +22,14 @@ class MenuListUtama extends StatelessWidget {
Key? key, Key? key,
required this.categoryNonFav, required this.categoryNonFav,
required this.i, required this.i,
required this.widthScreen,
required this.scrollController,
}) : super(key: key); }) : super(key: key);
final List<FilterMenu> categoryNonFav; final List<FilterMenu> categoryNonFav;
final int i; final int i;
final double widthScreen;
final ScrollController scrollController;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -107,17 +113,56 @@ class MenuListUtama extends StatelessWidget { ...@@ -107,17 +113,56 @@ class MenuListUtama extends StatelessWidget {
width: 12, width: 12,
height: double.infinity, height: double.infinity,
), ),
Container( GestureDetector(
onTap: () {
FocusScopeNode currentFocus =
FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
showModalBottomSheet(
backgroundColor: Colors.white,
isScrollControlled: true,
context: context,
builder: (context) {
return ShowMenuModal(
imageUrl: categoryNonFav[i].imageUrlMedium,
namaMenu: categoryNonFav[i].name,
hargaMenu: amountParseToInt(
categoryNonFav[i].price),
isHavevariant:
categoryNonFav[i].variantCat.isNotEmpty
? true
: false,
description: categoryNonFav[i].description,
id: categoryNonFav[i].id,
variantCat: categoryNonFav[i].variantCat,
isSell: categoryNonFav[i].isSell,
);
},
);
},
child: Container(
width: 125, width: 125,
height: 125, height: 125,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14)), borderRadius: BorderRadius.circular(14),
color: disabledColor.withOpacity(0.8),
),
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(14), borderRadius: BorderRadius.circular(14),
child: Image( child: (categoryNonFav[i].imageUrlMedium != '')
? Image(
fit: BoxFit.fill,
image: NetworkImage( image: NetworkImage(
categoryNonFav[i].imageUrlMedium, categoryNonFav[i].imageUrlMedium,
), ),
)
: const Image(
fit: BoxFit.fill,
image: AssetImage('assets/noimage.png'),
),
), ),
), ),
) )
...@@ -181,6 +226,12 @@ class MenuListUtama extends StatelessWidget { ...@@ -181,6 +226,12 @@ class MenuListUtama extends StatelessWidget {
const Spacer(), const Spacer(),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
if (menuUtama.isSell) { if (menuUtama.isSell) {
if (menuUtama.variantCat.isNotEmpty) { if (menuUtama.variantCat.isNotEmpty) {
if (indexListOrderan == -1) { if (indexListOrderan == -1) {
...@@ -282,6 +333,11 @@ class MenuListUtama extends StatelessWidget { ...@@ -282,6 +333,11 @@ class MenuListUtama extends StatelessWidget {
children: [ children: [
GestureDetector( GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
showModalBottomSheet( showModalBottomSheet(
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
isScrollControlled: true, isScrollControlled: true,
...@@ -330,6 +386,12 @@ class MenuListUtama extends StatelessWidget { ...@@ -330,6 +386,12 @@ class MenuListUtama extends StatelessWidget {
left: 0, left: 0,
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus =
FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
if (initialValue > 0) { if (initialValue > 0) {
initialValue -= 1; initialValue -= 1;
context.read<OrdersBloc>().insertData([ context.read<OrdersBloc>().insertData([
...@@ -365,6 +427,12 @@ class MenuListUtama extends StatelessWidget { ...@@ -365,6 +427,12 @@ class MenuListUtama extends StatelessWidget {
right: 0, right: 0,
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus =
FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
initialValue += 1; initialValue += 1;
context.read<OrdersBloc>().insertData([ context.read<OrdersBloc>().insertData([
[ [
......
This diff is collapsed.
...@@ -261,6 +261,13 @@ packages: ...@@ -261,6 +261,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.3" version: "6.0.3"
scrollable_positioned_list:
dependency: "direct main"
description:
name: scrollable_positioned_list
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.4"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
......
...@@ -34,6 +34,7 @@ dependencies: ...@@ -34,6 +34,7 @@ dependencies:
http: ^0.13.4 http: ^0.13.4
intl: ^0.17.0 intl: ^0.17.0
loading_animations: ^2.2.0 loading_animations: ^2.2.0
scrollable_positioned_list: ^0.3.4
shared_preferences: ^2.0.15 shared_preferences: ^2.0.15
shimmer: ^2.0.0 shimmer: ^2.0.0
url_launcher: ^6.1.5 url_launcher: ^6.1.5
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment