Merge pull request 'Add filter dialog and bottom sheet for tenders' (#81) from your_tenders_bottom_sheet into main

Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/81
This commit is contained in:
a.ghabeli
2025-09-01 16:56:53 +03:30
9 changed files with 314 additions and 57 deletions
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:tm_app/core/utils/result.dart';
import 'package:tm_app/data/repositories/your_tenders_repository.dart';
import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart';
@@ -13,6 +14,17 @@ class YourTendersViewModel with ChangeNotifier {
String? errorMessage;
TenderApprovalsResponse? data;
// Filter States
DateTimeRange? selectedDateRange;
String selectedStatus = 'All';
final _fmt = DateFormat('yyyy/MM/dd');
String get startDateFormatted =>
selectedDateRange?.start != null ? _fmt.format(selectedDateRange!.start) : 'YYYY/MM/DD';
String get endDateFormatted =>
selectedDateRange?.end != null ? _fmt.format(selectedDateRange!.end) : 'YYYY/MM/DD';
Future<void> getApprovedTenders() async {
isLoading = true;
notifyListeners();
@@ -32,4 +44,15 @@ class YourTendersViewModel with ChangeNotifier {
isLoading = false;
notifyListeners();
}
// --- Filter Actions ---
void setDateRange(DateTimeRange? range) {
selectedDateRange = range;
notifyListeners();
}
void setStatus(String status) {
selectedStatus = status;
notifyListeners();
}
}