aman-kassa-flutter/lib/views/home/tabs/KassaTab.dart

139 lines
4.5 KiB
Dart

import 'package:aman_kassa_flutter/core/models/ProductDao.dart';
import 'package:aman_kassa_flutter/redux/actions/main_actions.dart';
import 'package:aman_kassa_flutter/redux/state/main_state.dart';
import 'package:aman_kassa_flutter/redux/store.dart';
import 'package:aman_kassa_flutter/shared/app_colors.dart';
import 'package:aman_kassa_flutter/shared/shared_styles.dart';
import 'package:aman_kassa_flutter/views/home/tabs/kassaView/CatalogBottomSheet.dart';
import 'package:aman_kassa_flutter/views/home/tabs/kassaView/ProductAddBottomSheet.dart';
import 'package:aman_kassa_flutter/widgets/components/ProductListItem.dart';
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
class KassaTab extends StatelessWidget {
final int index;
KassaTab(this.index);
Widget buildItem(BuildContext ctxt, int index, ProductDao productDao) {
return ProductListItem(
item: new ProductDao(name: productDao.name, count: productDao.count, price: productDao.price),
index: index,
);
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(4),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: RaisedButton(
padding: EdgeInsets.all(8),
color: primaryColor,
child: Text(
"Добавить",
style: buttonBigTitleTextStyle,
),
onPressed: () { showModalBottomSheetCatalog(context, 'add');},
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: RaisedButton(
padding: EdgeInsets.all(8),
color: greenColor,
child: Text(
"Каталог",
style: buttonBigTitleTextStyle,
),
onPressed: () { showModalBottomSheetCatalog(context, 'catalog');},
),
),
),
],
),
Expanded(
child: Container(
child: StoreConnector<AppState, MainState>(
converter: (store) => store.state.mainState,
builder: (context, vm) {
return ListView.builder(
itemCount: vm.kassaItems.length,
itemBuilder: (BuildContext ctxt, int index) =>
buildItem(ctxt, index, vm.kassaItems[index]));
}
),
),
),
Row(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: RaisedButton(
padding: EdgeInsets.all(8),
color: redColor,
child: Text(
"Возврат",
style: buttonBigTitleTextStyle,
),
onPressed: () => null,
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: RaisedButton(
padding: EdgeInsets.all(8),
color: greenColor,
child: Text(
"Оплата",
style: buttonBigTitleTextStyle,
),
onPressed: () => null,
),
),
),
],
)
],
),
);
}
void showModalBottomSheetCatalog(BuildContext context, String action) {
showModalBottomSheet(
context: context,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context){
return DraggableScrollableSheet(
initialChildSize: 0.8,
maxChildSize: 0.95,
minChildSize: 0.5,
builder: (BuildContext context, ScrollController scrollController) {
if( action == 'add') {
return ProductAddBottomSheet(scrollController: scrollController,);
} else {
return CatalogBottomSheet(scrollController: scrollController,);
}
},
);
}
);
}
}