From f52467785bdc79a1f3f81369e7db9952ddc9b2f0 Mon Sep 17 00:00:00 2001 From: hieubt Date: Wed, 20 Dec 2023 23:31:26 +0700 Subject: [PATCH] TF-2101 Add `email_recovery` form (cherry picked from commit 194dc8f4772f4aa178b479217d3814892b32b94e) --- .../styles/email_recovery_form_styles.dart | 19 +++++++ .../email_recovery_form_desktop_builder.dart | 49 +++++++++++++++++++ .../email_recovery_form_mobile_builder.dart | 49 +++++++++++++++++++ .../email_recovery_form_tablet_builder.dart | 47 ++++++++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 lib/features/email_recovery/presentation/styles/email_recovery_form_styles.dart create mode 100644 lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart create mode 100644 lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart create mode 100644 lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart diff --git a/lib/features/email_recovery/presentation/styles/email_recovery_form_styles.dart b/lib/features/email_recovery/presentation/styles/email_recovery_form_styles.dart new file mode 100644 index 000000000..0305bef7c --- /dev/null +++ b/lib/features/email_recovery/presentation/styles/email_recovery_form_styles.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; + +class EmailRecoveryFormStyles { + static const double iconClosePositionTop = 7; + static const double iconClosePositionRight = 12; + + static const EdgeInsetsGeometry padding = EdgeInsets.only(top: 16); + static const EdgeInsetsGeometry inputAreaPadding = EdgeInsets.all(20.0); + static const EdgeInsetsGeometry bottomAreaPadding = EdgeInsets.symmetric( + horizontal: 20, + vertical: 12, + ); + + static const TextStyle titleTextStyle = TextStyle( + fontSize: 20, + fontWeight: FontWeight.w700, + color: Colors.black, + ); +} \ No newline at end of file diff --git a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart new file mode 100644 index 000000000..9099d55fe --- /dev/null +++ b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart @@ -0,0 +1,49 @@ +import 'package:core/presentation/views/button/icon_button_web.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_controller.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/styles/email_recovery_form_styles.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; + +class EmailRecoveryFormDesktopBuilder extends GetWidget { + @override + final controller = Get.find(); + + EmailRecoveryFormDesktopBuilder({super.key}); + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: EmailRecoveryFormStyles.padding, + alignment: Alignment.center, + child: Text( + AppLocalizations.of(context).recoverDeletedMessages, + style: EmailRecoveryFormStyles.titleTextStyle, + ), + ), + ], + ), + Positioned( + top: EmailRecoveryFormStyles.iconClosePositionTop, + right: EmailRecoveryFormStyles.iconClosePositionRight, + child: buildIconWeb( + icon: SvgPicture.asset( + controller.imagePaths.icClose, + fit: BoxFit.fill, + width: 24, + height: 24, + ), + tooltip: AppLocalizations.of(context).close, + onTap: () => controller.closeView(context), + ), + ) + ], + ); + } +} \ No newline at end of file diff --git a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart new file mode 100644 index 000000000..88b3bfd54 --- /dev/null +++ b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart @@ -0,0 +1,49 @@ +import 'package:core/presentation/views/button/icon_button_web.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_controller.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/styles/email_recovery_form_styles.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; + +class EmailRecoveryFormMobileBuilder extends GetWidget { + @override + final controller = Get.find(); + + EmailRecoveryFormMobileBuilder({super.key}); + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: EmailRecoveryFormStyles.padding, + alignment: Alignment.center, + child: Text( + AppLocalizations.of(context).recoverDeletedMessages, + style: EmailRecoveryFormStyles.titleTextStyle, + ), + ), + ], + ), + Positioned( + top: EmailRecoveryFormStyles.iconClosePositionTop, + left: EmailRecoveryFormStyles.iconClosePositionRight, + child: buildIconWeb( + icon: SvgPicture.asset( + controller.imagePaths.icClose, + height: 24, + width: 24, + fit: BoxFit.fill, + ), + tooltip: AppLocalizations.of(context).close, + onTap: () => controller.closeView(context), + ), + ) + ], + ); + } +} \ No newline at end of file diff --git a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart new file mode 100644 index 000000000..a18c95821 --- /dev/null +++ b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart @@ -0,0 +1,47 @@ +import 'package:core/presentation/views/button/icon_button_web.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_controller.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/styles/email_recovery_form_styles.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; + +class EmailRecoveryFormTabletBuilder extends GetWidget { + @override + final controller = Get.find(); + + EmailRecoveryFormTabletBuilder({super.key}); + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: EmailRecoveryFormStyles.padding, + alignment: Alignment.center, + child: Text( + AppLocalizations.of(context).recoverDeletedMessages, + style: EmailRecoveryFormStyles.titleTextStyle, + ), + ), + ], + ), + Positioned( + top: EmailRecoveryFormStyles.iconClosePositionTop, + right: EmailRecoveryFormStyles.iconClosePositionRight, + child: buildIconWeb( + icon: SvgPicture.asset( + controller.imagePaths.icClose, + fit: BoxFit.fill, + ), + tooltip: AppLocalizations.of(context).close, + onTap: () => controller.closeView(context), + ), + ) + ], + ); + } +} \ No newline at end of file