TF-3952 Change Forward warning banner style

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-08-08 00:07:19 +07:00
committed by Dat H. Pham
parent a57985a5ed
commit 765b7e295b
3 changed files with 56 additions and 37 deletions
@@ -1,4 +1,5 @@
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/theme_utils.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -83,9 +84,10 @@ class ForwardView extends GetWidget<ForwardController> with AppLoaderMixin {
child: SingleChildScrollView(
physics: const ClampingScrollPhysics(),
child: Padding(
padding: isWebDesktop
? EdgeInsets.zero
: const EdgeInsetsDirectional.symmetric(horizontal: 16),
padding: _getScrollViewPadding(
context,
controller.responsiveUtils,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -128,6 +130,19 @@ class ForwardView extends GetWidget<ForwardController> with AppLoaderMixin {
);
}
EdgeInsetsGeometry _getScrollViewPadding(
BuildContext context,
ResponsiveUtils responsiveUtils
) {
if (responsiveUtils.isWebDesktop(context)) {
return EdgeInsets.zero;
} else if (responsiveUtils.isMobile(context)) {
return const EdgeInsetsDirectional.symmetric(horizontal: 16);
} else {
return const EdgeInsetsDirectional.symmetric(horizontal: 32);
}
}
Widget _buildLoadingView() {
return Obx(() => controller.viewState.value.fold(
(failure) => const SizedBox.shrink(),
@@ -1,9 +1,9 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/theme_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings_utils.dart';
import 'package:tmail_ui_user/main/utils/app_config.dart';
class ForwardWarningBanner extends StatelessWidget {
@@ -21,28 +21,47 @@ class ForwardWarningBanner extends StatelessWidget {
Widget build(BuildContext context) {
return Container(
width: double.infinity,
margin: SettingsUtils.getForwardBannerPadding(context, responsiveUtils),
padding: const EdgeInsets.all(12),
margin: _getMargin(context, responsiveUtils),
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 17),
decoration: const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(8)),
color: AppColor.colorBackgroundNotificationVacationSetting,
color: AppColor.lightGrayEAEDF2,
),
child: Row(children: [
SvgPicture.asset(
imagePaths.icInfoCircleOutline,
colorFilter: AppColor.colorQuotaError.asFilter(),
),
const SizedBox(width: 12),
Expanded(
child: Text(
AppConfig.getForwardWarningMessage(context),
style: Theme.of(context).textTheme.labelSmall?.copyWith(
fontSize: 15,
color: Colors.black
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SvgPicture.asset(
imagePaths.icInfoCircleOutline,
width: 20,
height: 20,
fit: BoxFit.fill,
colorFilter: AppColor.steelGray200.asFilter(),
),
const SizedBox(width: 8),
Expanded(
child: Text(
AppConfig.getForwardWarningMessage(context),
style: ThemeUtils.textStyleInter400.copyWith(
letterSpacing: 0.0,
color: AppColor.steelGray400,
)
)
)
),
]),
),
],
),
);
}
EdgeInsetsGeometry _getMargin(
BuildContext context,
ResponsiveUtils responsiveUtils,
) {
if (responsiveUtils.isWebDesktop(context)) {
return const EdgeInsetsDirectional.only(end: 16, top: 16);
} else if (responsiveUtils.isMobile(context)) {
return const EdgeInsetsDirectional.only(start: 16, end: 16, bottom: 12);
} else {
return const EdgeInsetsDirectional.only(start: 32, end: 32, bottom: 12);
}
}
}
@@ -149,19 +149,4 @@ class SettingsUtils {
return const EdgeInsetsDirectional.symmetric(vertical: 8);
}
}
static EdgeInsetsGeometry getForwardBannerPadding(
BuildContext context,
ResponsiveUtils responsiveUtils,
) {
if (responsiveUtils.isWebDesktop(context)) {
return const EdgeInsetsDirectional.only(start: 16, end: 16, top: 16);
} else if (responsiveUtils.isPortraitMobile(context)) {
return const EdgeInsets.symmetric(horizontal: 16, vertical: 12);
} else if (responsiveUtils.isLandscapeMobile(context)) {
return const EdgeInsets.all(12);
} else {
return const EdgeInsets.symmetric(horizontal: 32, vertical: 12);
}
}
}