your tenders apprvals filter
This commit is contained in:
@@ -27,6 +27,16 @@ class YourTendersViewModel with ChangeNotifier {
|
||||
? _fmt.format(selectedDateRange!.end)
|
||||
: 'YYYY/MM/DD';
|
||||
|
||||
int get startDateUnix =>
|
||||
selectedDateRange?.start != null
|
||||
? selectedDateRange!.start.millisecondsSinceEpoch ~/ 1000
|
||||
: 0;
|
||||
|
||||
int get endDateUnix =>
|
||||
selectedDateRange?.end != null
|
||||
? selectedDateRange!.end.millisecondsSinceEpoch ~/ 1000
|
||||
: 0;
|
||||
|
||||
Future<void> getApprovedTenders() async {
|
||||
isLoading = true;
|
||||
notifyListeners();
|
||||
@@ -86,4 +96,23 @@ class YourTendersViewModel with ChangeNotifier {
|
||||
selectedStatus = status;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void clearFilter() {
|
||||
selectedDateRange = null;
|
||||
selectedStatus = 'All';
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> callWithFilter() async {
|
||||
if (selectedStatus == 'All') {
|
||||
await getTenders(
|
||||
limit: 10,
|
||||
offset: 0,
|
||||
createdFrom: startDateUnix.toString(),
|
||||
createdTo: endDateUnix.toString(),
|
||||
);
|
||||
} else if (selectedStatus == 'Tenders submitted') {
|
||||
await getApprovedTenders();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,29 @@ import 'package:tm_app/views/your_tenders/strings/your_tenders_strings.dart';
|
||||
import 'package:tm_app/views/your_tenders/widgets/filter_button.dart';
|
||||
import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart';
|
||||
|
||||
class YourTendersMobilePage extends StatelessWidget {
|
||||
class YourTendersMobilePage extends StatefulWidget {
|
||||
const YourTendersMobilePage({super.key});
|
||||
|
||||
@override
|
||||
State<YourTendersMobilePage> createState() => _YourTendersMobilePageState();
|
||||
}
|
||||
|
||||
class _YourTendersMobilePageState extends State<YourTendersMobilePage> {
|
||||
late final YourTendersViewModel viewModel;
|
||||
@override
|
||||
void initState() {
|
||||
viewModel = context.read<YourTendersViewModel>();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
viewModel.clearFilter();
|
||||
});
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:country_flags/country_flags.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:tm_app/core/utils/date_utils.dart';
|
||||
|
||||
import '../../../core/constants/assets.dart';
|
||||
import '../../../core/theme/colors.dart';
|
||||
@@ -63,7 +64,7 @@ class TenderCard extends StatelessWidget {
|
||||
children: [
|
||||
// Date
|
||||
Text(
|
||||
date,
|
||||
unixToDate(int.parse(date)),
|
||||
style: TextStyle(
|
||||
color: AppColors.grey60,
|
||||
fontSize: 12.0.sp(),
|
||||
|
||||
@@ -162,18 +162,7 @@ class TendersFilterDialog extends StatelessWidget {
|
||||
isEnabled: true,
|
||||
onPressed: () {
|
||||
context.pop();
|
||||
if (vm.selectedStatus ==
|
||||
YourTendersStrings.tendersSubmitted) {
|
||||
vm.getApprovedTenders();
|
||||
}
|
||||
if (vm.selectedStatus == YourTendersStrings.all) {
|
||||
vm.getTenders(
|
||||
limit: 10,
|
||||
offset: 0,
|
||||
createdFrom: vm.startDateFormatted,
|
||||
createdTo: vm.endDateFormatted,
|
||||
);
|
||||
}
|
||||
vm.callWithFilter();
|
||||
},
|
||||
text: YourTendersStrings.confirm,
|
||||
textColor: AppColors.mainBlue,
|
||||
|
||||
Reference in New Issue
Block a user