some changes navigation in web and response changes

This commit is contained in:
amirrezaghabeli
2025-08-26 12:22:42 +03:30
parent 1b94f704cb
commit f964186a87
24 changed files with 553 additions and 398 deletions
+53 -27
View File
@@ -1,4 +1,5 @@
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/routes/app_routes.dart';
@@ -6,6 +7,7 @@ import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/data/services/model/tender_approvals_state_response/tender_approvals_state_response.dart';
import 'package:tm_app/view_models/home_view_model.dart';
import 'package:tm_app/views/shared/desktop_navigation_widget.dart';
import '../widgets.dart';
@@ -27,36 +29,60 @@ class DesktopHomePage extends StatelessWidget {
return Center(child: Text(homeViewModel.errorMessage!));
}
return Center(
child: SizedBox(
width: 780,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(height: 55),
// SizedBox(width: 780, child: NotificationCard()),
SizedBox(height: 40.0),
_progressBarsRow(
homeViewModel.tenderApprovalsStateResponse!,
),
SizedBox(height: 32.0.h()),
Padding(
padding: EdgeInsets.symmetric(horizontal: 15.0.w()),
child: _firstTenderCardsRow(
context,
homeViewModel.tenderApprovalsStateResponse!,
return Column(
children: [
DesktopNavigationWidget(
currentIndex: 0, // Home index
onTabChanged: (index) {
// Navigate to different screens based on index
switch (index) {
case 0:
// Already on home
break;
case 1:
// Navigate to tenders
Router.neglect(context, () => context.go('/tenders'));
break;
case 2:
// Navigate to profile
Router.neglect(context, () => context.go('/profile'));
break;
}
},
),
Expanded(
child: Center(
child: SizedBox(
width: 780,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(height: 55),
// SizedBox(width: 780, child: NotificationCard()),
SizedBox(height: 40.0),
_progressBarsRow(
homeViewModel.tenderApprovalsStateResponse!,
),
SizedBox(height: 32.0.h()),
Padding(
padding: EdgeInsets.symmetric(horizontal: 15.0.w()),
child: _firstTenderCardsRow(
context,
homeViewModel.tenderApprovalsStateResponse!,
),
),
SizedBox(height: 32.0.h()),
_yourTenderText(homeViewModel),
SizedBox(height: 8.0.h()),
_bottomListView(homeViewModel),
],
),
),
SizedBox(height: 32.0.h()),
_yourTenderText(homeViewModel),
SizedBox(height: 8.0.h()),
_bottomListView(homeViewModel),
],
),
),
),
),
],
);
},
),
@@ -117,7 +143,7 @@ class DesktopHomePage extends StatelessWidget {
iconPath: 'assets/icons/arrows.svg',
title: AppStrings.tenderSubmitted,
amount:
tenderApprovalsStateResponse.data!.approvedTenders.toString(),
tenderApprovalsStateResponse.data!.submittedTenders.toString(),
// tenderApprovalsStateResponse
// .data!
// .approvalsBySubmission!
+1 -1
View File
@@ -117,7 +117,7 @@ class MobileHomePage extends StatelessWidget {
iconPath: AssetsManager.arrows,
title: AppStrings.tenderSubmitted,
amount:
tenderApprovalsStateResponse.data!.approvedTenders.toString(),
tenderApprovalsStateResponse.data!.submittedTenders.toString(),
// tenderApprovalsStateResponse
// .data!
// .approvalsBySubmission!
+10 -10
View File
@@ -120,7 +120,7 @@ class TabletHomePage extends StatelessWidget {
iconPath: 'assets/icons/arrows.svg',
title: AppStrings.tenderSubmitted,
amount:
tenderApprovalsStateResponse.data!.approvedTenders.toString(),
tenderApprovalsStateResponse.data!.submittedTenders.toString(),
// tenderApprovalsStateResponse
// .data!
// .approvalsBySubmission!
@@ -207,16 +207,16 @@ class TabletHomePage extends StatelessWidget {
Widget _bottomListView(HomeViewModel homeViewModel) {
final controller = ScrollController();
controller.addListener(() {
if (homeViewModel.isRecommendedMode) {
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommandTenders();
controller.addListener(() {
if (homeViewModel.isRecommendedMode) {
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommandTenders();
}
}
}
}
}
});
});
return SizedBox(
width: double.infinity,