update carton

This commit is contained in:
Thinzar Win
2021-01-11 19:35:26 +06:30
parent 8a813023f4
commit db07e01f85
19 changed files with 211 additions and 137 deletions

View File

@@ -1,8 +1,14 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/carton/model/carton_model.dart';
import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/barcode_scanner.dart';
import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
import 'package:fcs/pages/widgets/local_popupmenu.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/popupmenu.dart';
import 'package:fcs/pagination/paginator_listview.dart';
import 'package:flutter/material.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -42,12 +48,32 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
@override
List<Widget> buildActions(BuildContext context) {
var boxModel = Provider.of<CartonModel>(context);
final popupMenu =
StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
return LocalPopupMenuButton(
popmenus: [
LocalPopupMenu(
id: 1,
textKey: "box.weight",
selected: boxModel.selectedIndexFilter == 1),
LocalPopupMenu(
id: 2,
textKey: "box.name",
selected: boxModel.selectedIndexFilter == 2)
],
popupMenuCallback: (p) => setState(() {
boxModel.selectedIndexFilter = p.id;
}));
});
return [
IconButton(
icon: Icon(MaterialCommunityIcons.barcode_scan,
size: 30, color: Colors.white),
onPressed: () => _scan(context),
),
popupMenu,
IconButton(
icon: Icon(Icons.clear),
onPressed: () => query = '',
@@ -85,6 +111,7 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
child: ListView(
children: snapshot.data
.map((u) => CartonListRow(
key: ValueKey(u.id),
carton: u,
callbackCartonSelect: callbackCartonSelect,
))
@@ -115,15 +142,17 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
@override
Widget buildSuggestions(BuildContext context) {
final cartonModel = Provider.of<CartonModel>(context);
return Container(
padding: EdgeInsets.only(top: 5),
child: ListView(
children: cartonModel.cartons
.map((u) => CartonListRow(
carton: u,
callbackCartonSelect: callbackCartonSelect,
))
.toList(),
child: PaginatorListView<Carton>(
paginatorListener: cartonModel.cartonsByFilter,
rowBuilder: (c) => CartonListRow(
key: ValueKey(c.id),
carton: c,
callbackCartonSelect: callbackCartonSelect,
),
color: primaryColor,
),
);
}