fix carton

This commit is contained in:
2021-01-10 15:56:27 +06:30
parent 83cea10328
commit 4839109280
21 changed files with 201 additions and 162 deletions

View File

@@ -4,9 +4,9 @@ import 'package:fcs/pages/user_search/user_serach.dart';
import 'package:flutter/material.dart';
class UserListRow extends StatefulWidget {
final CallbackUserSelect callbackUserSelect;
final OnUserRowSelect onUserRowSelect;
final User user;
const UserListRow({this.user, this.callbackUserSelect});
const UserListRow({this.user, this.onUserRowSelect});
@override
_UserListRowState createState() => _UserListRowState();
@@ -30,9 +30,8 @@ class _UserListRowState extends State<UserListRow> {
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pop(context);
if (widget.callbackUserSelect != null)
widget.callbackUserSelect(widget.user);
if (widget.onUserRowSelect != null)
widget.onUserRowSelect(widget.user);
},
child: Row(
children: <Widget>[

View File

@@ -5,19 +5,22 @@ import 'package:fcs/pages/user_search/user_list_row.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
typedef CallbackUserSelect(User suer);
typedef OnUserSelect(User suer);
typedef OnUserRowSelect(User suer);
Future<User> searchUser(BuildContext context,
{CallbackUserSelect callbackUserSelect}) async =>
{OnUserSelect onUserSelect, bool popPage = false}) async =>
await showSearch<User>(
context: context,
delegate: UserSearchDelegate(callbackUserSelect: callbackUserSelect),
delegate:
UserSearchDelegate(onUserSelect: onUserSelect, popPage: popPage),
);
class UserSearchDelegate extends SearchDelegate<User> {
final CallbackUserSelect callbackUserSelect;
final OnUserSelect onUserSelect;
final bool popPage;
UserSearchDelegate({this.callbackUserSelect});
UserSearchDelegate({this.onUserSelect, this.popPage});
@override
String get searchFieldLabel => 'Search by FCS ID or Name';
@@ -77,7 +80,7 @@ class UserSearchDelegate extends SearchDelegate<User> {
children: snapshot.data
.map((u) => UserListRow(
user: u,
callbackUserSelect: callbackUserSelect,
onUserRowSelect: (u) => _onUserRowSelect(context, u),
))
.toList(),
),
@@ -113,4 +116,13 @@ class UserSearchDelegate extends SearchDelegate<User> {
),
);
}
_onUserRowSelect(BuildContext context, User user) {
if (onUserSelect != null) {
onUserSelect(user);
}
if (popPage) {
Navigator.pop(context);
}
}
}