changed messages to toast

This commit is contained in:
amirrezaghabeli
2025-09-07 10:14:05 +03:30
parent ab3d7c7b03
commit 33edb093f5
16 changed files with 75 additions and 131 deletions
+2 -2
View File
@@ -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),
);
+14 -22
View File
@@ -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<TenderDetailDesktopPage> {
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!);
}
}
+15 -22
View File
@@ -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<TenderDetailMobilePage> {
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!);
}
}
+14 -22
View File
@@ -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<TenderDetailTabletPage> {
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!);
}
}
@@ -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<LikedTendersDesktopPage> {
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();
}
}
@@ -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<LikedTendersMobilePage> {
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();
}
}
@@ -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<LikedTendersTabletPage> {
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();
}
}
@@ -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<LoginDesktopPage> {
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!);
}
}
+2 -3
View File
@@ -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<LoginMobilePage> {
Router.neglect(context, () => context.go('/home'));
}
if (viewModel.errorMessage != null) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text(viewModel.errorMessage!)));
AppToast.error(context, viewModel.errorMessage!);
}
}
+2 -3
View File
@@ -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<LoginTabletPage> {
Router.neglect(context, () => context.go('/home'));
}
if (viewModel.errorMessage != null) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text(viewModel.errorMessage!)));
AppToast.error(context, viewModel.errorMessage!);
}
}
+2 -6
View File
@@ -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<DesktopProfilePage> {
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));
+2 -6
View File
@@ -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<MobileProfilePage> {
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));
+2 -6
View File
@@ -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<TabletProfilePage> {
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));
+3 -12
View File
@@ -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<DesktopTendersPage> {
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!);
}
}
+3 -12
View File
@@ -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<MobileTendersPage> {
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!);
}
}
+4 -1
View File
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
@@ -29,10 +30,12 @@
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png" />
<title>tm_app</title>
<title>OppLens</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
<script src="flutter_bootstrap.js" async></script>
</body>
</html>