From 33edb093f5b6a1a9b86c3c9f0999d2f67aca65da Mon Sep 17 00:00:00 2001 From: amirrezaghabeli Date: Sun, 7 Sep 2025 10:14:05 +0330 Subject: [PATCH] changed messages to toast --- lib/core/utils/app_toast.dart | 4 +- .../detail/pages/detail_desktop_page.dart | 36 +++++++----------- .../detail/pages/detail_mobile_page.dart | 37 ++++++++----------- .../detail/pages/detail_tablet_page.dart | 36 +++++++----------- .../pages/liked_tenders_desktop_page.dart | 5 +-- .../pages/liked_tenders_mobile_page.dart | 5 +-- .../pages/liked_tenders_tablet_page.dart | 5 +-- lib/views/login/pages/login_desktop_page.dart | 5 +-- lib/views/login/pages/login_mobile_page.dart | 5 +-- lib/views/login/pages/login_tablet_page.dart | 5 +-- lib/views/profile/pages/d_profile_page.dart | 8 +--- lib/views/profile/pages/m_profile_page.dart | 8 +--- lib/views/profile/pages/t_profile_page.dart | 8 +--- lib/views/tenders/pages/d_tenders_page.dart | 15 ++------ lib/views/tenders/pages/m_tenders_page.dart | 15 ++------ web/index.html | 9 +++-- 16 files changed, 75 insertions(+), 131 deletions(-) diff --git a/lib/core/utils/app_toast.dart b/lib/core/utils/app_toast.dart index 78d2885..8b843fa 100644 --- a/lib/core/utils/app_toast.dart +++ b/lib/core/utils/app_toast.dart @@ -6,7 +6,7 @@ class AppToast { toastification.show( context: context, type: ToastificationType.success, - style: ToastificationStyle.fillColored, + style: ToastificationStyle.flatColored, title: Text(message), autoCloseDuration: const Duration(seconds: 3), ); @@ -16,7 +16,7 @@ class AppToast { toastification.show( context: context, type: ToastificationType.error, - style: ToastificationStyle.fillColored, + style: ToastificationStyle.flatColored, title: Text(message), autoCloseDuration: const Duration(seconds: 3), ); diff --git a/lib/views/detail/pages/detail_desktop_page.dart b/lib/views/detail/pages/detail_desktop_page.dart index 0621ef8..23256c8 100644 --- a/lib/views/detail/pages/detail_desktop_page.dart +++ b/lib/views/detail/pages/detail_desktop_page.dart @@ -7,6 +7,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_action.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_card.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; +import '../../../core/utils/app_toast.dart'; import '../../shared/desktop_navigation_widget.dart'; import '../strings/tender_details_strings.dart'; @@ -32,46 +33,37 @@ class _TenderDetailDesktopPageState extends State { if (viewModel.status.isNotEmpty && viewModel.status == 'submitted' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderSubmittedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderSubmittedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'unsubmitted' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderUnsubmittedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderUnsubmittedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'rejected' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderRejectedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderRejectedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'unrejected' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderUnrejectedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderUnrejectedSuccessfully, ); } if (viewModel.approvalStatus != false && viewModel.errorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - backgroundColor: AppColors.errorColor, - content: Text(viewModel.errorMessage!), - ), - ); + AppToast.error(context, viewModel.errorMessage!); } } diff --git a/lib/views/detail/pages/detail_mobile_page.dart b/lib/views/detail/pages/detail_mobile_page.dart index a2b18e7..37fd1b4 100644 --- a/lib/views/detail/pages/detail_mobile_page.dart +++ b/lib/views/detail/pages/detail_mobile_page.dart @@ -10,6 +10,8 @@ import 'package:tm_app/views/detail/widgets/tender_detail_card.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import 'package:tm_app/views/shared/tender_app_bar.dart'; +import '../../../core/utils/app_toast.dart'; + class TenderDetailMobilePage extends StatefulWidget { final String tenderId; const TenderDetailMobilePage({required this.tenderId, super.key}); @@ -31,46 +33,37 @@ class _TenderDetailMobilePageState extends State { if (viewModel.status.isNotEmpty && viewModel.status == 'submitted' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderSubmittedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderSubmittedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'unsubmitted' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderUnsubmittedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderUnsubmittedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'rejected' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderRejectedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderRejectedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'unrejected' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderUnrejectedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderUnrejectedSuccessfully, ); } if (viewModel.approvalStatus != false && viewModel.errorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - backgroundColor: AppColors.errorColor, - content: Text(viewModel.errorMessage!), - ), - ); + AppToast.error(context, viewModel.errorMessage!); } } diff --git a/lib/views/detail/pages/detail_tablet_page.dart b/lib/views/detail/pages/detail_tablet_page.dart index 7e7f980..7a2b9ad 100644 --- a/lib/views/detail/pages/detail_tablet_page.dart +++ b/lib/views/detail/pages/detail_tablet_page.dart @@ -9,6 +9,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_card.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import 'package:tm_app/views/shared/tablet_navigation_widget.dart'; +import '../../../core/utils/app_toast.dart'; import '../../shared/tender_app_bar.dart'; import '../strings/tender_details_strings.dart'; @@ -33,46 +34,37 @@ class _TenderDetailTabletPageState extends State { if (viewModel.status.isNotEmpty && viewModel.status == 'submitted' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderSubmittedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderSubmittedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'unsubmitted' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderUnsubmittedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderUnsubmittedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'rejected' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderRejectedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderRejectedSuccessfully, ); } if (viewModel.status.isNotEmpty && viewModel.status == 'unrejected' && viewModel.approvalStatus == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(TenderDetailsStrings.tenderUnrejectedSuccessfully), - ), + AppToast.success( + context, + TenderDetailsStrings.tenderUnrejectedSuccessfully, ); } if (viewModel.approvalStatus != false && viewModel.errorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - backgroundColor: AppColors.errorColor, - content: Text(viewModel.errorMessage!), - ), - ); + AppToast.error(context, viewModel.errorMessage!); } } diff --git a/lib/views/liked_tenders/pages/liked_tenders_desktop_page.dart b/lib/views/liked_tenders/pages/liked_tenders_desktop_page.dart index 75ddb6c..d7a2391 100644 --- a/lib/views/liked_tenders/pages/liked_tenders_desktop_page.dart +++ b/lib/views/liked_tenders/pages/liked_tenders_desktop_page.dart @@ -8,6 +8,7 @@ import 'package:tm_app/data/services/model/tender_approvals_data/tender_approval import 'package:tm_app/view_models/liked_tenders_view_model.dart'; import 'package:tm_app/views/liked_tenders/widgets/liked_tenders_list_item.dart'; +import '../../../core/utils/app_toast.dart'; import '../../shared/desktop_navigation_widget.dart'; import '../strings/liked_tenders_strings.dart'; @@ -31,9 +32,7 @@ class _LikedTendersDesktopPageState extends State { void _viewModelListener() { if (viewModel.approvalErrorMessage?.isNotEmpty == true && viewModel.approvalStatus == false) { - ScaffoldMessenger.of( - context, - ).showSnackBar(SnackBar(content: Text(viewModel.approvalErrorMessage!))); + AppToast.error(context, viewModel.approvalErrorMessage!); viewModel.clearApprovalErrorMessage(); } } diff --git a/lib/views/liked_tenders/pages/liked_tenders_mobile_page.dart b/lib/views/liked_tenders/pages/liked_tenders_mobile_page.dart index 1ae8380..9d694c0 100644 --- a/lib/views/liked_tenders/pages/liked_tenders_mobile_page.dart +++ b/lib/views/liked_tenders/pages/liked_tenders_mobile_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_svg/svg.dart'; 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/app_toast.dart'; import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/data/services/model/tender_approvals_data/tender_approvals_data.dart'; import 'package:tm_app/view_models/liked_tenders_view_model.dart'; @@ -34,9 +35,7 @@ class _LikedTendersMobilePageState extends State { if (mounted && viewModel.approvalErrorMessage?.isNotEmpty == true && viewModel.approvalStatus == false) { - ScaffoldMessenger.of( - context, - ).showSnackBar(SnackBar(content: Text(viewModel.approvalErrorMessage!))); + AppToast.error(context, viewModel.approvalErrorMessage!); viewModel.clearApprovalErrorMessage(); } } diff --git a/lib/views/liked_tenders/pages/liked_tenders_tablet_page.dart b/lib/views/liked_tenders/pages/liked_tenders_tablet_page.dart index e01792b..02f538f 100644 --- a/lib/views/liked_tenders/pages/liked_tenders_tablet_page.dart +++ b/lib/views/liked_tenders/pages/liked_tenders_tablet_page.dart @@ -9,6 +9,7 @@ import 'package:tm_app/view_models/liked_tenders_view_model.dart'; import 'package:tm_app/views/liked_tenders/strings/liked_tenders_strings.dart'; import 'package:tm_app/views/liked_tenders/widgets/liked_tenders_list_item.dart'; +import '../../../core/utils/app_toast.dart'; import '../../../data/services/model/tender_approvals_data/tender_approvals_data.dart'; import '../../shared/tablet_navigation_widget.dart'; import '../../shared/tender_app_bar.dart'; @@ -32,9 +33,7 @@ class _LikedTendersTabletPageState extends State { void _viewModelListener() { if (viewModel.approvalErrorMessage?.isNotEmpty == true && viewModel.approvalStatus == false) { - ScaffoldMessenger.of( - context, - ).showSnackBar(SnackBar(content: Text(viewModel.approvalErrorMessage!))); + AppToast.error(context, viewModel.approvalErrorMessage!); viewModel.clearApprovalErrorMessage(); } } diff --git a/lib/views/login/pages/login_desktop_page.dart b/lib/views/login/pages/login_desktop_page.dart index 468407f..effd4f9 100644 --- a/lib/views/login/pages/login_desktop_page.dart +++ b/lib/views/login/pages/login_desktop_page.dart @@ -7,6 +7,7 @@ import 'package:tm_app/core/theme/colors.dart'; import '../../../core/constants/assets.dart'; import '../../../core/routes/app_routes.dart'; +import '../../../core/utils/app_toast.dart'; import '../../../core/utils/size_config.dart'; import '../../../view_models/auth_view_model.dart'; import '../strings/login_strings.dart'; @@ -33,9 +34,7 @@ class _LoginDesktopPageState extends State { if (viewModel.loggedInUser != null) { Router.neglect(context, () => context.go('/home')); } else if (viewModel.errorMessage != null) { - ScaffoldMessenger.of( - context, - ).showSnackBar(SnackBar(content: Text(viewModel.errorMessage!))); + AppToast.error(context, viewModel.errorMessage!); } } diff --git a/lib/views/login/pages/login_mobile_page.dart b/lib/views/login/pages/login_mobile_page.dart index f23a2ae..5e9dfee 100644 --- a/lib/views/login/pages/login_mobile_page.dart +++ b/lib/views/login/pages/login_mobile_page.dart @@ -6,6 +6,7 @@ import 'package:tm_app/core/routes/app_routes.dart'; import 'package:tm_app/core/theme/colors.dart'; import '../../../core/constants/assets.dart'; +import '../../../core/utils/app_toast.dart'; import '../../../core/utils/size_config.dart'; import '../../../view_models/auth_view_model.dart'; import '../strings/login_strings.dart'; @@ -32,9 +33,7 @@ class _LoginMobilePageState extends State { Router.neglect(context, () => context.go('/home')); } if (viewModel.errorMessage != null) { - ScaffoldMessenger.of( - context, - ).showSnackBar(SnackBar(content: Text(viewModel.errorMessage!))); + AppToast.error(context, viewModel.errorMessage!); } } diff --git a/lib/views/login/pages/login_tablet_page.dart b/lib/views/login/pages/login_tablet_page.dart index 1579f47..7e3423d 100644 --- a/lib/views/login/pages/login_tablet_page.dart +++ b/lib/views/login/pages/login_tablet_page.dart @@ -5,6 +5,7 @@ import 'package:tm_app/core/theme/colors.dart'; import '../../../core/constants/assets.dart'; import '../../../core/routes/app_routes.dart'; +import '../../../core/utils/app_toast.dart'; import '../../../core/utils/size_config.dart'; import '../../../view_models/auth_view_model.dart'; import '../strings/login_strings.dart'; @@ -32,9 +33,7 @@ class _LoginTabletPageState extends State { Router.neglect(context, () => context.go('/home')); } if (viewModel.errorMessage != null) { - ScaffoldMessenger.of( - context, - ).showSnackBar(SnackBar(content: Text(viewModel.errorMessage!))); + AppToast.error(context, viewModel.errorMessage!); } } diff --git a/lib/views/profile/pages/d_profile_page.dart b/lib/views/profile/pages/d_profile_page.dart index 8d16838..ad5b623 100644 --- a/lib/views/profile/pages/d_profile_page.dart +++ b/lib/views/profile/pages/d_profile_page.dart @@ -7,6 +7,7 @@ import 'package:tm_app/view_models/profile_view_model.dart'; import '../../../core/constants/assets.dart'; import '../../../core/constants/common_strings.dart'; import '../../../core/theme/colors.dart'; +import '../../../core/utils/app_toast.dart'; import '../../../core/utils/size_config.dart'; import '../../shared/desktop_navigation_widget.dart'; import '../strings/profile_strings.dart'; @@ -31,12 +32,7 @@ class _DesktopProfilePageState extends State { void _profileListener() { if (viewModel.errorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(viewModel.errorMessage!), - backgroundColor: AppColors.red, - ), - ); + AppToast.error(context, viewModel.errorMessage!); } if (viewModel.loggedOut) { Router.neglect(context, () => LoginScreenRoute().go(context)); diff --git a/lib/views/profile/pages/m_profile_page.dart b/lib/views/profile/pages/m_profile_page.dart index d405506..bf3cc4b 100644 --- a/lib/views/profile/pages/m_profile_page.dart +++ b/lib/views/profile/pages/m_profile_page.dart @@ -8,6 +8,7 @@ import 'package:tm_app/views/profile/widgets/theme_toggle.dart'; import '../../../core/constants/assets.dart'; import '../../../core/constants/common_strings.dart'; import '../../../core/theme/colors.dart'; +import '../../../core/utils/app_toast.dart'; import '../../../core/utils/size_config.dart'; import '../../shared/tender_app_bar.dart'; import '../strings/profile_strings.dart'; @@ -31,12 +32,7 @@ class _MobileProfilePageState extends State { void _profileListener() { if (viewModel.errorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(viewModel.errorMessage!), - backgroundColor: AppColors.red, - ), - ); + AppToast.error(context, viewModel.errorMessage!); } if (viewModel.loggedOut) { Router.neglect(context, () => LoginScreenRoute().go(context)); diff --git a/lib/views/profile/pages/t_profile_page.dart b/lib/views/profile/pages/t_profile_page.dart index 0ce498f..7802e08 100644 --- a/lib/views/profile/pages/t_profile_page.dart +++ b/lib/views/profile/pages/t_profile_page.dart @@ -7,6 +7,7 @@ import 'package:tm_app/core/routes/app_routes.dart'; import 'package:tm_app/view_models/profile_view_model.dart'; import '../../../core/theme/colors.dart'; +import '../../../core/utils/app_toast.dart'; import '../../../core/utils/size_config.dart'; import '../../shared/tablet_navigation_widget.dart'; import '../../shared/tender_app_bar.dart'; @@ -32,12 +33,7 @@ class _TabletProfilePageState extends State { void _profileListener() { if (viewModel.errorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(viewModel.errorMessage!), - backgroundColor: AppColors.red, - ), - ); + AppToast.error(context, viewModel.errorMessage!); } if (viewModel.loggedOut) { Router.neglect(context, () => LoginScreenRoute().go(context)); diff --git a/lib/views/tenders/pages/d_tenders_page.dart b/lib/views/tenders/pages/d_tenders_page.dart index 6a71a5e..5277831 100644 --- a/lib/views/tenders/pages/d_tenders_page.dart +++ b/lib/views/tenders/pages/d_tenders_page.dart @@ -7,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/common_strings.dart'; +import '../../../core/utils/app_toast.dart'; class DesktopTendersPage extends StatefulWidget { const DesktopTendersPage({super.key}); @@ -26,20 +27,10 @@ class _DesktopTendersPageState extends State { void _viewModelListener() { if (viewModel.feedbackErrorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - backgroundColor: AppColors.error, - content: Text(viewModel.feedbackErrorMessage!), - ), - ); + AppToast.error(context, viewModel.feedbackErrorMessage!); } if (viewModel.tenderApprovalErrorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - backgroundColor: AppColors.error, - content: Text(viewModel.tenderApprovalErrorMessage!), - ), - ); + AppToast.error(context, viewModel.tenderApprovalErrorMessage!); } } diff --git a/lib/views/tenders/pages/m_tenders_page.dart b/lib/views/tenders/pages/m_tenders_page.dart index 9c42a64..98f8631 100644 --- a/lib/views/tenders/pages/m_tenders_page.dart +++ b/lib/views/tenders/pages/m_tenders_page.dart @@ -5,6 +5,7 @@ import 'package:tm_app/view_models/tenders_view_model.dart'; import '../../../core/constants/common_strings.dart'; import '../../../core/theme/colors.dart'; +import '../../../core/utils/app_toast.dart'; import '../../shared/tender_app_bar.dart'; import '../strings/tenders_strings.dart'; import '../widgets/main_tenders_slider.dart'; @@ -27,20 +28,10 @@ class _MobileTendersPageState extends State { void _viewModelListener() { if (viewModel.feedbackErrorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - backgroundColor: AppColors.error, - content: Text(viewModel.feedbackErrorMessage!), - ), - ); + AppToast.error(context, viewModel.feedbackErrorMessage!); } if (viewModel.tenderApprovalErrorMessage != null) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - backgroundColor: AppColors.error, - content: Text(viewModel.tenderApprovalErrorMessage!), - ), - ); + AppToast.error(context, viewModel.tenderApprovalErrorMessage!); } } diff --git a/web/index.html b/web/index.html index c325f36..37bcea5 100644 --- a/web/index.html +++ b/web/index.html @@ -1,5 +1,6 @@ + - + - tm_app + OppLens + - + + \ No newline at end of file