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