sender and consignee selection

This commit is contained in:
tzw
2024-03-05 16:32:54 +06:30
parent b443293cd0
commit 247140de6b
5 changed files with 63 additions and 59 deletions

View File

@@ -1,23 +1,28 @@
import 'dart:async';
import 'dart:convert';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:logging/logging.dart';
import '../../../config.dart';
import '../../../domain/constants.dart';
import '../../../domain/entities/user.dart';
import '../../../helpers/api_helper.dart';
import '../../../helpers/firebase_helper.dart';
import '../../main/model/base_model.dart';
class SenderSelectionModel extends BaseModel {
final log = Logger("SenderSelectionModel");
// for search
String query = "";
int offset = 0;
bool reachEnd = false;
List<User> _senders = [];
List<User> get getSenders {
var users = new List<User>.from(_senders);
return users..insert(0, User(id: all, name: "All"));
if (query == "") {
return users..insert(0, User(id: all, name: "All"));
}
return users;
}
bool isLoading = false;
@@ -30,8 +35,6 @@ class SenderSelectionModel extends BaseModel {
search(String term, {bool imm = false}) async {
query = term;
_senders.clear();
offset = 0;
reachEnd = false;
t?.cancel();
t = Timer(Duration(milliseconds: imm ? 0 : 800), () async {
await loadMoreSearch(term: term);
@@ -44,31 +47,28 @@ class SenderSelectionModel extends BaseModel {
return;
}
// var bytes = utf8.encode(term);
// var base64Str = base64.encode(bytes);
// HtmlEscape htmlEscape = const HtmlEscape();
// String escapeSender = htmlEscape.convert(base64Str);
var bytes = utf8.encode(term);
var base64Str = base64.encode(bytes);
HtmlEscape htmlEscape = const HtmlEscape();
String escapeSender = htmlEscape.convert(base64Str);
// int rowPerPage = 20;
// List<User> list = [];
int rowPerPage = 20;
List<User> list = [];
// var result = await requestAPI(
// "/api/fts/$user_collection/$escapeSender/$rowPerPage", "GET",
// url: Config.instance.reportURL, token: await getToken());
var result = await requestAPI(
"/api/fts/$user_collection/$escapeSender/$rowPerPage", "GET",
url: Config.instance.reportURL, token: await getToken());
// if (result != null) {
// for (var row in result) {
// var item = User.fromJson(row);
// list.add(item);
// }
// }
if (result != null) {
for (var row in result) {
var item = User.fromJson(row);
list.add(item);
}
}
// _senders.addAll(list);
// offset += rowPerPage;
// if (list.length < rowPerPage) {
// reachEnd = true;
// }
// notifyListeners();
_senders = List.from(list);
notifyListeners();
}
addDefaultSenders() async {