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/state/success.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/theme_utils.dart'; import 'package:core/presentation/utils/theme_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -83,9 +84,10 @@ class ForwardView extends GetWidget<ForwardController> with AppLoaderMixin {
child: SingleChildScrollView( child: SingleChildScrollView(
physics: const ClampingScrollPhysics(), physics: const ClampingScrollPhysics(),
child: Padding( child: Padding(
padding: isWebDesktop padding: _getScrollViewPadding(
? EdgeInsets.zero context,
: const EdgeInsetsDirectional.symmetric(horizontal: 16), controller.responsiveUtils,
),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ 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() { Widget _buildLoadingView() {
return Obx(() => controller.viewState.value.fold( return Obx(() => controller.viewState.value.fold(
(failure) => const SizedBox.shrink(), (failure) => const SizedBox.shrink(),
@@ -1,9 +1,9 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.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/material.dart';
import 'package:flutter_svg/flutter_svg.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'; import 'package:tmail_ui_user/main/utils/app_config.dart';
class ForwardWarningBanner extends StatelessWidget { class ForwardWarningBanner extends StatelessWidget {
@@ -21,28 +21,47 @@ class ForwardWarningBanner extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
width: double.infinity, width: double.infinity,
margin: SettingsUtils.getForwardBannerPadding(context, responsiveUtils), margin: _getMargin(context, responsiveUtils),
padding: const EdgeInsets.all(12), padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 17),
decoration: const BoxDecoration( decoration: const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(8)), borderRadius: BorderRadius.all(Radius.circular(8)),
color: AppColor.colorBackgroundNotificationVacationSetting, color: AppColor.lightGrayEAEDF2,
), ),
child: Row(children: [ child: Row(
SvgPicture.asset( crossAxisAlignment: CrossAxisAlignment.start,
imagePaths.icInfoCircleOutline, children: [
colorFilter: AppColor.colorQuotaError.asFilter(), SvgPicture.asset(
), imagePaths.icInfoCircleOutline,
const SizedBox(width: 12), width: 20,
Expanded( height: 20,
child: Text( fit: BoxFit.fill,
AppConfig.getForwardWarningMessage(context), colorFilter: AppColor.steelGray200.asFilter(),
style: Theme.of(context).textTheme.labelSmall?.copyWith( ),
fontSize: 15, const SizedBox(width: 8),
color: Colors.black 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); 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);
}
}
} }