sort and filter added to tenders web

This commit is contained in:
amirrezaghabeli
2025-09-23 13:15:41 +03:30
parent 9efc7b7f1a
commit 801e170d7c
10 changed files with 190 additions and 28 deletions
@@ -5,15 +5,16 @@ import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/assets.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/your_tenders_view_model.dart';
import 'package:tm_app/views/shared/base_button.dart';
import 'package:tm_app/views/tenders/strings/tenders_strings.dart';
import '../../../view_models/tenders_view_model.dart';
class TendersFilterDialog extends StatelessWidget {
const TendersFilterDialog({super.key});
Widget _dateRangePill(BuildContext context) {
final viewModel = context.watch<YourTendersViewModel>();
final viewModel = context.watch<TendersViewModel>();
final start = viewModel.selectedDateRange?.start;
final end = viewModel.selectedDateRange?.end;
@@ -97,7 +98,7 @@ class TendersFilterDialog extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<YourTendersViewModel>(
return Consumer<TendersViewModel>(
builder: (context, vm, child) {
return SingleChildScrollView(
child: Padding(
@@ -176,14 +177,14 @@ class TendersFilterDialog extends StatelessWidget {
SizedBox(height: 16.0.h()),
Row(
children: [
const Spacer(),
const Spacer(),
SizedBox(
width: 156.0.w(),
child: BaseButton(
isEnabled: true,
onPressed: () {
context.pop();
vm.callWithFilter();
vm.callWithSortAndStatus();
},
text: TendersStrings.confirm,
textColor: AppColors.textBlue,
@@ -5,16 +5,17 @@ import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/assets.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/your_tenders_view_model.dart';
import 'package:tm_app/views/shared/base_button.dart';
import 'package:tm_app/views/tenders/strings/tenders_strings.dart';
import '../../../view_models/tenders_view_model.dart';
class TendersSortDialog extends StatelessWidget {
const TendersSortDialog({super.key});
@override
Widget build(BuildContext context) {
return Consumer<YourTendersViewModel>(
return Consumer<TendersViewModel>(
builder: (context, vm, child) {
return SingleChildScrollView(
child: Padding(
@@ -59,9 +60,9 @@ class TendersSortDialog extends StatelessWidget {
].map((status) {
return RadioListTile(
value: status,
groupValue: vm.selectedStatus,
groupValue: vm.selectedSort,
activeColor: AppColors.mainBlue,
onChanged: (value) => vm.setStatus(value!),
onChanged: (value) => vm.setSort(value!),
title: Text(
status,
style: TextStyle(
@@ -75,14 +76,14 @@ class TendersSortDialog extends StatelessWidget {
SizedBox(height: 16.0.h()),
Row(
children: [
const Spacer(),
const Spacer(),
SizedBox(
width: 156.0.w(),
child: BaseButton(
isEnabled: true,
onPressed: () {
context.pop();
vm.callWithFilter();
vm.callWithSortAndStatus();
},
text: TendersStrings.confirm,
textColor: AppColors.textBlue,