Add filter dialog and bottom sheet for tenders

This commit is contained in:
llsajjad
2025-08-31 16:24:35 +03:30
parent bf6fbea9a9
commit 96540c3cb3
9 changed files with 314 additions and 57 deletions
@@ -1,11 +1,9 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/strings.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/view_models/your_tenders_view_model.dart';
import 'package:tm_app/views/shared/main_tab_bar.dart';
import 'package:tm_app/views/your_tenders/widgets/approved_tenders.dart';
import 'package:tm_app/views/your_tenders/widgets/filter_button.dart';
import 'package:tm_app/views/your_tenders/widgets/tablet_desktop_appbar.dart';
import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart';
@@ -73,13 +71,16 @@ class _YourTendersDesktopPageState extends State<YourTendersDesktopPage>
SizedBox(height: 64.0),
TabletDesktopAppbar(),
SizedBox(height: 20.0),
MainTabBar(
controller: controller,
titles: [
AppStrings.approvedTenders,
AppStrings.tenderSubmitted,
],
),
// MainTabBar(
// controller: controller,
// titles: [
// AppStrings.approvedTenders,
// AppStrings.tenderSubmitted,
// ],
// ),
FilterButton(platformType: PlatformType.tabletDesktop),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
@@ -98,7 +99,7 @@ class _YourTendersDesktopPageState extends State<YourTendersDesktopPage>
return TabBarView(
controller: controller,
children: [
ApprovedTenders(tendersSubmitted: []),
// ApprovedTenders(tendersSubmitted: []),
TendersSubmitted(approvedTenders: viewModel.data!),
],
);
@@ -3,38 +3,13 @@ import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/strings.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/view_models/your_tenders_view_model.dart';
import 'package:tm_app/views/shared/main_tab_bar.dart';
import 'package:tm_app/views/shared/tender_app_bar.dart';
import 'package:tm_app/views/your_tenders/widgets/approved_tenders.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 StatefulWidget {
class YourTendersMobilePage extends StatelessWidget {
const YourTendersMobilePage({super.key});
@override
State<YourTendersMobilePage> createState() => _YourTendersMobilePageState();
}
class _YourTendersMobilePageState extends State<YourTendersMobilePage>
with SingleTickerProviderStateMixin {
late TabController controller;
@override
void initState() {
super.initState();
controller = TabController(length: 2, vsync: this);
WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<YourTendersViewModel>().getApprovedTenders();
});
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -42,10 +17,7 @@ class _YourTendersMobilePageState extends State<YourTendersMobilePage>
appBar: appBar(context: context, title: AppStrings.yourTenders),
body: Column(
children: [
MainTabBar(
controller: controller,
titles: [AppStrings.approvedTenders, AppStrings.tenderSubmitted],
),
FilterButton(platformType: PlatformType.mobile),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
@@ -61,11 +33,12 @@ class _YourTendersMobilePageState extends State<YourTendersMobilePage>
return Center(child: Text(viewModel.errorMessage!));
}
return TabBarView(
controller: controller,
return Column(
children: [
ApprovedTenders(tendersSubmitted: []),
TendersSubmitted(approvedTenders: viewModel.data!),
// Expanded(child: ApprovedTenders(tendersSubmitted: [])),
Expanded(
child: TendersSubmitted(approvedTenders: viewModel.data!),
),
],
);
},
@@ -2,12 +2,10 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/strings.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/main_tab_bar.dart';
import 'package:tm_app/views/your_tenders/widgets/approved_tenders.dart';
import 'package:tm_app/views/your_tenders/widgets/filter_button.dart';
import 'package:tm_app/views/your_tenders/widgets/tablet_desktop_appbar.dart';
import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart';
@@ -101,13 +99,15 @@ class _YourTendersTabletPageState extends State<YourTendersTabletPage>
child: TabletDesktopAppbar(),
),
SizedBox(height: 24.0.h()),
MainTabBar(
controller: controller,
titles: [
AppStrings.approvedTenders,
AppStrings.tenderSubmitted,
],
),
// MainTabBar(
// controller: controller,
// titles: [
// AppStrings.approvedTenders,
// AppStrings.tenderSubmitted,
// ],
// ),
FilterButton(platformType: PlatformType.tabletDesktop),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
@@ -126,7 +126,7 @@ class _YourTendersTabletPageState extends State<YourTendersTabletPage>
return TabBarView(
controller: controller,
children: [
ApprovedTenders(tendersSubmitted: []),
// ApprovedTenders(tendersSubmitted: []),
TendersSubmitted(approvedTenders: viewModel.data!),
],
);