feat: order search
This commit is contained in:
@@ -45,18 +45,6 @@ class _SalesPageState extends State<SalesPage> {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
List<Order> _filterOrders(List<Order> orders) {
|
||||
if (searchQuery.isEmpty) {
|
||||
return orders;
|
||||
}
|
||||
|
||||
return orders.where((order) {
|
||||
final customerName = order.orderNumber?.toLowerCase() ?? "";
|
||||
final queryLower = searchQuery.toLowerCase();
|
||||
return customerName.contains(queryLower);
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SafeArea(
|
||||
@@ -71,8 +59,13 @@ class _SalesPageState extends State<SalesPage> {
|
||||
if (notification is ScrollEndNotification &&
|
||||
scrollController.position.extentAfter == 0) {
|
||||
context.read<OrderLoaderBloc>().add(
|
||||
OrderLoaderEvent.loadMore(widget.status,
|
||||
dateFrom: startDate, dateTo: endDate));
|
||||
OrderLoaderEvent.loadMore(
|
||||
widget.status,
|
||||
dateFrom: startDate,
|
||||
dateTo: endDate,
|
||||
search: searchQuery,
|
||||
),
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -92,6 +85,16 @@ class _SalesPageState extends State<SalesPage> {
|
||||
setState(() {
|
||||
searchQuery = value;
|
||||
});
|
||||
Future.delayed(const Duration(milliseconds: 800), () {
|
||||
context.read<OrderLoaderBloc>().add(
|
||||
OrderLoaderEvent.getByStatus(
|
||||
widget.status,
|
||||
dateFrom: startDate,
|
||||
dateTo: endDate,
|
||||
search: searchQuery,
|
||||
),
|
||||
);
|
||||
});
|
||||
},
|
||||
onDateRangeChanged: (start, end) {
|
||||
setState(() {
|
||||
@@ -125,8 +128,7 @@ class _SalesPageState extends State<SalesPage> {
|
||||
),
|
||||
loaded: (orders, totalOrder, hasReachedMax,
|
||||
currentPage, isLoadingMore) {
|
||||
final filtered = _filterOrders(orders);
|
||||
if (filtered.isEmpty) {
|
||||
if (orders.isEmpty) {
|
||||
return Center(
|
||||
child: Text(
|
||||
"Belum ada transaksi saat ini. ",
|
||||
@@ -138,17 +140,17 @@ class _SalesPageState extends State<SalesPage> {
|
||||
);
|
||||
} else {
|
||||
return ListView.builder(
|
||||
itemCount: filtered.length,
|
||||
itemCount: orders.length,
|
||||
controller: scrollController,
|
||||
itemBuilder: (context, index) {
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
orderDetail = filtered[index];
|
||||
orderDetail = orders[index];
|
||||
});
|
||||
context.read<OrderFormBloc>().add(
|
||||
OrderFormEvent.started(
|
||||
filtered[index]));
|
||||
orders[index]));
|
||||
},
|
||||
child: SalesCard(
|
||||
order: orders[index],
|
||||
|
||||
Reference in New Issue
Block a user