From 6f4cc67fe67dffa9e976c4f09f15a3f8af25517c Mon Sep 17 00:00:00 2001 From: amirrezaghabeli Date: Sun, 31 Aug 2025 14:41:50 +0330 Subject: [PATCH] some changes in web pages --- lib/core/config/dependencies.dart | 6 +++++- lib/view_models/tenders_view_model.dart | 13 +++++++++++-- lib/views/tenders/pages/d_tenders_page.dart | 3 +-- lib/views/tenders/pages/t_tenders_page.dart | 18 +++++++++++++++--- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/lib/core/config/dependencies.dart b/lib/core/config/dependencies.dart index 1e564dc..fd45be0 100644 --- a/lib/core/config/dependencies.dart +++ b/lib/core/config/dependencies.dart @@ -85,7 +85,11 @@ List get viewModels { create: (context) => HomeViewModel(homeRepository: context.read()), ), ChangeNotifierProvider( - create: (context) => TendersViewModel(tendersRepository: context.read()), + create: + (context) => TendersViewModel( + tendersRepository: context.read(), + homeViewModel: context.read(), + ), ), ChangeNotifierProvider( create: diff --git a/lib/view_models/tenders_view_model.dart b/lib/view_models/tenders_view_model.dart index f2a9759..a1142f7 100644 --- a/lib/view_models/tenders_view_model.dart +++ b/lib/view_models/tenders_view_model.dart @@ -11,12 +11,17 @@ import 'package:tm_app/data/services/model/tenders/tenders_response/tenders_resp import '../core/utils/result.dart'; 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 'home_view_model.dart'; class TendersViewModel with ChangeNotifier { final TendersRepository _tendersRepository; + final HomeViewModel _homeViewModel; - TendersViewModel({required TendersRepository tendersRepository}) - : _tendersRepository = tendersRepository { + TendersViewModel({ + required TendersRepository tendersRepository, + required HomeViewModel homeViewModel, + }) : _tendersRepository = tendersRepository, + _homeViewModel = homeViewModel { WidgetsBinding.instance.addPostFrameCallback((_) { getTenders(); }); @@ -457,4 +462,8 @@ class TendersViewModel with ChangeNotifier { _tenderApprovalErrorMessage = null; notifyListeners(); } + + void updateHome() { + _homeViewModel.init(); + } } diff --git a/lib/views/tenders/pages/d_tenders_page.dart b/lib/views/tenders/pages/d_tenders_page.dart index 25b071e..6da4b78 100644 --- a/lib/views/tenders/pages/d_tenders_page.dart +++ b/lib/views/tenders/pages/d_tenders_page.dart @@ -3,7 +3,6 @@ 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'; -import 'package:tm_app/view_models/home_view_model.dart'; import 'package:tm_app/view_models/tenders_view_model.dart'; import 'package:tm_app/views/shared/desktop_navigation_widget.dart'; import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart'; @@ -65,7 +64,7 @@ class _DesktopTendersPageState extends State { case 0: // Navigate to home Router.neglect(context, () => context.go('/home')); - context.read().init(); + viewModel.updateHome(); break; case 1: // Already on tenders diff --git a/lib/views/tenders/pages/t_tenders_page.dart b/lib/views/tenders/pages/t_tenders_page.dart index bcf2735..c70b645 100644 --- a/lib/views/tenders/pages/t_tenders_page.dart +++ b/lib/views/tenders/pages/t_tenders_page.dart @@ -4,7 +4,6 @@ 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'; -import 'package:tm_app/view_models/home_view_model.dart'; import 'package:tm_app/view_models/tenders_view_model.dart'; import 'package:tm_app/views/shared/tablet_navigation_widget.dart'; import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart'; @@ -12,9 +11,22 @@ import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart'; import '../../../core/constants/assets.dart'; import '../../../core/constants/strings.dart'; -class TabletTendersPage extends StatelessWidget { +class TabletTendersPage extends StatefulWidget { const TabletTendersPage({super.key}); + @override + State createState() => _TabletTendersPageState(); +} + +class _TabletTendersPageState extends State { + late final TendersViewModel viewModel; + + @override + void initState() { + super.initState(); + viewModel = context.read(); + } + @override Widget build(BuildContext context) { final GlobalKey key = GlobalKey(); @@ -53,7 +65,7 @@ class TabletTendersPage extends StatelessWidget { case 0: context.pop(); Router.neglect(context, () => context.go('/home')); - context.read().init(); + viewModel.updateHome(); break; case 2: context.pop();