From 2373ce3c26ca2fd997b7746b123a2f9591064165 Mon Sep 17 00:00:00 2001 From: amirrezaghabeli Date: Fri, 22 Aug 2025 14:48:58 +0330 Subject: [PATCH] fixed load again --- lib/core/routes/app_shell/app_shell_screen.dart | 11 +++++++---- lib/view_models/tenders_view_model.dart | 3 +++ lib/views/home/progress_bar_column.dart | 2 +- lib/views/tenders/widgets/tender_card.dart | 10 +++++++++- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/lib/core/routes/app_shell/app_shell_screen.dart b/lib/core/routes/app_shell/app_shell_screen.dart index 15f9a75..d157f03 100644 --- a/lib/core/routes/app_shell/app_shell_screen.dart +++ b/lib/core/routes/app_shell/app_shell_screen.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; +import 'package:provider/provider.dart'; import 'package:tm_app/core/routes/app_shell/desktop_shell_page.dart'; import 'package:tm_app/core/routes/app_shell/mobile_shell_page.dart'; import 'package:tm_app/core/routes/app_shell/tablet_shell_page.dart'; +import 'package:tm_app/view_models/home_view_model.dart'; import 'package:tm_app/views/shared/responsive_builder.dart'; class AppShellScreen extends StatelessWidget { @@ -10,11 +12,12 @@ class AppShellScreen extends StatelessWidget { final StatefulNavigationShell navigationShell; - void _gotoBranch(int index) { + void _gotoBranch(int index, BuildContext context) { navigationShell.goBranch( index, initialLocation: index == navigationShell.currentIndex, ); + context.read().init(); } @override @@ -22,15 +25,15 @@ class AppShellScreen extends StatelessWidget { return ResponsiveBuilder( mobile: MobileShellPage( navigationShell: navigationShell, - onTap: _gotoBranch, + onTap: (value) => _gotoBranch(value, context), ), tablet: TabletShellPage( navigationShell: navigationShell, - onTap: _gotoBranch, + onTap: (value) => _gotoBranch(value, context), ), desktop: DesktopShellPage( navigationShell: navigationShell, - onTap: _gotoBranch, + onTap: (value) => _gotoBranch(value, context), ), ); } diff --git a/lib/view_models/tenders_view_model.dart b/lib/view_models/tenders_view_model.dart index 8b95fe4..cb974f4 100644 --- a/lib/view_models/tenders_view_model.dart +++ b/lib/view_models/tenders_view_model.dart @@ -231,6 +231,9 @@ class TendersViewModel with ChangeNotifier { } break; case Error(): + // Remove the tender from tenderApprovals if an error occurs for this tenderId + + tenderApprovals.removeWhere((a) => a.tenderId == tenderId); _errorMessage = result.error.toString(); break; } diff --git a/lib/views/home/progress_bar_column.dart b/lib/views/home/progress_bar_column.dart index 74e0a4a..d57ec15 100644 --- a/lib/views/home/progress_bar_column.dart +++ b/lib/views/home/progress_bar_column.dart @@ -91,7 +91,7 @@ class _ProgressBarColumnState extends State Widget _centerText() { return Center( child: Text( - '${widget.amount}%', + '${double.parse(widget.amount).round()}%', style: TextStyle( fontSize: 24.0.sp(), fontWeight: FontWeight.bold, diff --git a/lib/views/tenders/widgets/tender_card.dart b/lib/views/tenders/widgets/tender_card.dart index 78f8ace..5969df2 100644 --- a/lib/views/tenders/widgets/tender_card.dart +++ b/lib/views/tenders/widgets/tender_card.dart @@ -1,6 +1,7 @@ import 'package:country_flags/country_flags.dart'; import 'package:flutter/material.dart' hide DateUtils; import 'package:flutter_svg/svg.dart'; +import 'package:provider/provider.dart'; import 'package:tm_app/core/constants/strings.dart'; import 'package:tm_app/core/routes/app_routes.dart'; import 'package:tm_app/data/services/model/tender_data/tender_data.dart'; @@ -9,6 +10,7 @@ import '../../../core/constants/assets.dart'; import '../../../core/theme/colors.dart'; import '../../../core/utils/date_utils.dart'; import '../../../core/utils/size_config.dart'; +import '../../../view_models/tenders_view_model.dart'; import 'tender_action_buttons_row.dart'; class TenderCard extends StatelessWidget { @@ -319,7 +321,13 @@ class TenderCard extends StatelessWidget { return InkWell( onTap: () { if (tender.id != null) { - TenderDetailRouteData(tenderId: tender.id!).push(context); + TenderDetailRouteData(tenderId: tender.id!).push(context).then(( + value, + ) { + if (context.mounted) { + context.read().getTenderApprovals(tender.id!); + } + }); } }, child: Container(