From 471f6e31197e74e0a815ae6bdd45789904175cfe Mon Sep 17 00:00:00 2001 From: amirrezaghabeli Date: Sun, 31 Aug 2025 15:04:35 +0330 Subject: [PATCH] web fixes codes --- lib/core/config/dependencies.dart | 1 + lib/view_models/tender_detail_view_model.dart | 10 +++++++++- .../detail/pages/detail_desktop_page.dart | 19 +++++++++++-------- .../detail/pages/detail_tablet_page.dart | 12 +++++------- lib/views/home/pages/d_home_page.dart | 11 ++++++++--- lib/views/home/pages/t_home_page.dart | 4 ++-- lib/views/profile/pages/d_profile_page.dart | 14 ++++++++++---- lib/views/profile/pages/m_profile_page.dart | 3 ++- lib/views/profile/pages/t_profile_page.dart | 13 ++++++++----- lib/views/tenders/pages/d_tenders_page.dart | 7 +++---- lib/views/tenders/pages/t_tenders_page.dart | 5 +++-- 11 files changed, 62 insertions(+), 37 deletions(-) diff --git a/lib/core/config/dependencies.dart b/lib/core/config/dependencies.dart index fd45be0..f4e8a77 100644 --- a/lib/core/config/dependencies.dart +++ b/lib/core/config/dependencies.dart @@ -97,6 +97,7 @@ List get viewModels { tenderDetailRepository: context.read(), tendersRepository: context.read(), tendersViewModel: context.read(), + homeViewModel: context.read(), ), ), diff --git a/lib/view_models/tender_detail_view_model.dart b/lib/view_models/tender_detail_view_model.dart index ca13cd2..627c9ca 100644 --- a/lib/view_models/tender_detail_view_model.dart +++ b/lib/view_models/tender_detail_view_model.dart @@ -8,20 +8,24 @@ import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_ import '../data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart'; import '../data/services/model/tender_approvals_data/tender_approvals_data.dart'; import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart'; +import 'home_view_model.dart'; import 'tenders_view_model.dart'; class TenderDetailViewModel with ChangeNotifier { final TenderDetailRepository _tenderDetailRepository; final TendersRepository _tendersRepository; final TendersViewModel _tendersViewModel; + final HomeViewModel _homeViewModel; TenderDetailViewModel({ required TenderDetailRepository tenderDetailRepository, required TendersRepository tendersRepository, required TendersViewModel tendersViewModel, + required HomeViewModel homeViewModel, }) : _tenderDetailRepository = tenderDetailRepository, _tendersRepository = tendersRepository, - _tendersViewModel = tendersViewModel; + _tendersViewModel = tendersViewModel, + _homeViewModel = homeViewModel; bool _isLoading = false; bool _isSubmitApprovalLoading = false; @@ -122,6 +126,10 @@ class TenderDetailViewModel with ChangeNotifier { _tendersViewModel.getTenderApprovals(tenderId); } + void updateHome() async { + _homeViewModel.init(); + } + Future getTenderApprovals(String tenderId) async { _errorMessage = null; notifyListeners(); diff --git a/lib/views/detail/pages/detail_desktop_page.dart b/lib/views/detail/pages/detail_desktop_page.dart index 4748e33..7cde0ce 100644 --- a/lib/views/detail/pages/detail_desktop_page.dart +++ b/lib/views/detail/pages/detail_desktop_page.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/utils/size_config.dart'; @@ -9,7 +8,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_card.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import '../../../core/constants/strings.dart'; -import '../../../view_models/home_view_model.dart'; +import '../../../core/routes/app_routes.dart'; import '../../shared/desktop_navigation_widget.dart'; class TenderDetailDesktopPage extends StatefulWidget { @@ -80,9 +79,7 @@ class _TenderDetailDesktopPageState extends State { return PopScope( onPopInvokedWithResult: (didPop, result) { WidgetsBinding.instance.addPostFrameCallback((_) { - context.read().updateTenderApprovals( - widget.tenderId, - ); + viewModel.updateTenderApprovals(widget.tenderId); }); }, child: Scaffold( @@ -112,14 +109,20 @@ class _TenderDetailDesktopPageState extends State { // Navigate to different screens based on index switch (index) { case 0: - Router.neglect(context, () => context.go('/home')); - context.read().init(); + Router.neglect( + context, + () => HomeRouteData().go(context), + ); + viewModel.updateHome(); break; case 1: break; case 2: // Navigate to profile - Router.neglect(context, () => context.go('/profile')); + Router.neglect( + context, + () => ProfileRouteData().go(context), + ); break; } }, diff --git a/lib/views/detail/pages/detail_tablet_page.dart b/lib/views/detail/pages/detail_tablet_page.dart index 191286c..aac0f6f 100644 --- a/lib/views/detail/pages/detail_tablet_page.dart +++ b/lib/views/detail/pages/detail_tablet_page.dart @@ -6,7 +6,6 @@ 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/home_view_model.dart'; import 'package:tm_app/view_models/tender_detail_view_model.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_action.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_card.dart'; @@ -14,6 +13,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import 'package:tm_app/views/shared/tablet_navigation_widget.dart'; import '../../../core/constants/strings.dart'; +import '../../../core/routes/app_routes.dart'; class TenderDetailTabletPage extends StatefulWidget { final String tenderId; @@ -84,9 +84,7 @@ class _TenderDetailTabletPageState extends State { onPopInvokedWithResult: (didPop, result) { if (kIsWeb) { WidgetsBinding.instance.addPostFrameCallback((_) { - context.read().updateTenderApprovals( - widget.tenderId, - ); + viewModel.updateTenderApprovals(widget.tenderId); }); } }, @@ -124,15 +122,15 @@ class _TenderDetailTabletPageState extends State { // Handle navigation to other tabs switch (index) { case 0: - Router.neglect(context, () => context.go('/home')); - context.read().init(); + Router.neglect(context, () => HomeRouteData().go(context)); + viewModel.updateHome(); break; case 1: break; case 2: // Navigate to profile context.pop(); - Router.neglect(context, () => context.go('/profile')); + Router.neglect(context, () => ProfileRouteData().go(context)); break; } }, diff --git a/lib/views/home/pages/d_home_page.dart b/lib/views/home/pages/d_home_page.dart index 9c79fdc..408c8fb 100644 --- a/lib/views/home/pages/d_home_page.dart +++ b/lib/views/home/pages/d_home_page.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/constants/assets.dart'; import 'package:tm_app/core/constants/strings.dart'; @@ -44,11 +43,17 @@ class DesktopHomePage extends StatelessWidget { break; case 1: // Navigate to tenders - Router.neglect(context, () => context.go('/tenders')); + Router.neglect( + context, + () => TendersRouteData().go(context), + ); break; case 2: // Navigate to profile - Router.neglect(context, () => context.go('/profile')); + Router.neglect( + context, + () => ProfileRouteData().go(context), + ); break; } }, diff --git a/lib/views/home/pages/t_home_page.dart b/lib/views/home/pages/t_home_page.dart index 22aa5b4..05ba91e 100644 --- a/lib/views/home/pages/t_home_page.dart +++ b/lib/views/home/pages/t_home_page.dart @@ -59,12 +59,12 @@ class TabletHomePage extends StatelessWidget { case 1: // Navigate to tenders context.pop(); - Router.neglect(context, () => context.go('/tenders')); + Router.neglect(context, () => TendersRouteData().go(context)); break; case 2: // Navigate to profile context.pop(); - Router.neglect(context, () => context.go('/profile')); + Router.neglect(context, () => ProfileRouteData().go(context)); break; } }, diff --git a/lib/views/profile/pages/d_profile_page.dart b/lib/views/profile/pages/d_profile_page.dart index a43eff8..1db81c4 100644 --- a/lib/views/profile/pages/d_profile_page.dart +++ b/lib/views/profile/pages/d_profile_page.dart @@ -1,6 +1,5 @@ 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/routes/app_routes.dart'; import 'package:tm_app/view_models/profile_view_model.dart'; @@ -39,7 +38,7 @@ class _DesktopProfilePageState extends State { ); } if (viewModel.loggedOut) { - LoginScreenRoute().go(context); + Router.neglect(context, () => LoginScreenRoute().go(context)); } } @@ -77,11 +76,17 @@ class _DesktopProfilePageState extends State { switch (index) { case 0: // Navigate to home - Router.neglect(context, () => context.go('/home')); + Router.neglect( + context, + () => HomeRouteData().go(context), + ); break; case 1: // Navigate to profile - Router.neglect(context, () => context.go('/tenders')); + Router.neglect( + context, + () => TendersRouteData().go(context), + ); break; case 2: // Already on profile @@ -163,6 +168,7 @@ class _DesktopProfilePageState extends State { alignment: Alignment.centerRight, child: InkWell( onTap: () => viewModel.logout(), + borderRadius: BorderRadius.circular(100), child: Container( width: 156, height: 56.0.h(), diff --git a/lib/views/profile/pages/m_profile_page.dart b/lib/views/profile/pages/m_profile_page.dart index 9da448c..5710bd1 100644 --- a/lib/views/profile/pages/m_profile_page.dart +++ b/lib/views/profile/pages/m_profile_page.dart @@ -38,7 +38,7 @@ class _MobileProfilePageState extends State { ); } if (viewModel.loggedOut) { - LoginScreenRoute().go(context); + Router.neglect(context, () => LoginScreenRoute().go(context)); } } @@ -143,6 +143,7 @@ class _MobileProfilePageState extends State { Spacer(), InkWell( onTap: () => viewModel.logout(), + borderRadius: BorderRadius.circular(100), child: Container( width: double.infinity, height: 56.0.h(), diff --git a/lib/views/profile/pages/t_profile_page.dart b/lib/views/profile/pages/t_profile_page.dart index 6ef28e5..ef544c6 100644 --- a/lib/views/profile/pages/t_profile_page.dart +++ b/lib/views/profile/pages/t_profile_page.dart @@ -5,7 +5,6 @@ import 'package:provider/provider.dart'; import 'package:tm_app/core/constants/assets.dart'; import 'package:tm_app/core/constants/strings.dart'; import 'package:tm_app/core/routes/app_routes.dart'; -import 'package:tm_app/view_models/home_view_model.dart'; import 'package:tm_app/view_models/profile_view_model.dart'; import '../../../core/theme/colors.dart'; @@ -40,7 +39,7 @@ class _TabletProfilePageState extends State { ); } if (viewModel.loggedOut) { - LoginScreenRoute().go(context); + Router.neglect(context, () => LoginScreenRoute().go(context)); } } @@ -103,12 +102,15 @@ class _TabletProfilePageState extends State { switch (index) { case 0: context.pop(); - Router.neglect(context, () => context.go('/home')); - context.read().init(); + Router.neglect(context, () => HomeRouteData().go(context)); + break; case 1: context.pop(); - Router.neglect(context, () => context.go('/tenders')); + Router.neglect( + context, + () => TendersRouteData().go(context), + ); break; } }, @@ -190,6 +192,7 @@ class _TabletProfilePageState extends State { alignment: Alignment.centerRight, child: InkWell( onTap: () => viewModel.logout(), + borderRadius: BorderRadius.circular(100), child: Container( width: 156, height: 56.0.h(), diff --git a/lib/views/tenders/pages/d_tenders_page.dart b/lib/views/tenders/pages/d_tenders_page.dart index 6da4b78..5fcd1fa 100644 --- a/lib/views/tenders/pages/d_tenders_page.dart +++ b/lib/views/tenders/pages/d_tenders_page.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/utils/size_config.dart'; @@ -8,6 +7,7 @@ import 'package:tm_app/views/shared/desktop_navigation_widget.dart'; import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart'; import '../../../core/constants/strings.dart'; +import '../../../core/routes/app_routes.dart'; class DesktopTendersPage extends StatefulWidget { const DesktopTendersPage({super.key}); @@ -63,7 +63,7 @@ class _DesktopTendersPageState extends State { switch (index) { case 0: // Navigate to home - Router.neglect(context, () => context.go('/home')); + Router.neglect(context, () => HomeRouteData().go(context)); viewModel.updateHome(); break; case 1: @@ -71,8 +71,7 @@ class _DesktopTendersPageState extends State { break; case 2: // Navigate to profile - // context.go('/profile'); - Router.neglect(context, () => context.go('/profile')); + Router.neglect(context, () => ProfileRouteData().go(context)); break; } }, diff --git a/lib/views/tenders/pages/t_tenders_page.dart b/lib/views/tenders/pages/t_tenders_page.dart index c70b645..60e008e 100644 --- a/lib/views/tenders/pages/t_tenders_page.dart +++ b/lib/views/tenders/pages/t_tenders_page.dart @@ -10,6 +10,7 @@ import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart'; import '../../../core/constants/assets.dart'; import '../../../core/constants/strings.dart'; +import '../../../core/routes/app_routes.dart'; class TabletTendersPage extends StatefulWidget { const TabletTendersPage({super.key}); @@ -64,12 +65,12 @@ class _TabletTendersPageState extends State { switch (index) { case 0: context.pop(); - Router.neglect(context, () => context.go('/home')); + Router.neglect(context, () => HomeRouteData().go(context)); viewModel.updateHome(); break; case 2: context.pop(); - Router.neglect(context, () => context.go('/profile')); + Router.neglect(context, () => ProfileRouteData().go(context)); break; }