TF-1813 Change ComposeFloatingButton to StatelessWidget

(cherry picked from commit f99199c2fcf1767bfa2287c220ca341a555ae191)
This commit is contained in:
dab246
2023-06-01 15:13:07 +07:00
committed by Dat Vu
parent ba29dadea6
commit 13a698bc92
3 changed files with 20 additions and 19 deletions
@@ -9,13 +9,19 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart'; import 'package:tmail_ui_user/main/utils/app_utils.dart';
mixin ComposeFloatingButtonMixin { class ComposeFloatingButton extends StatelessWidget {
Widget buildComposeFloatingButton( final ScrollController scrollController;
BuildContext context, final VoidCallback? onTap;
ScrollController scrollController,
{VoidCallback? onTap} const ComposeFloatingButton({
) { super.key,
required this.scrollController,
this.onTap
});
@override
Widget build(BuildContext context) {
final imagePaths = getBinding<ImagePaths>(); final imagePaths = getBinding<ImagePaths>();
return Align( return Align(
@@ -2,7 +2,7 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart'; import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/base/mixin/compose_floating_button_mixin.dart'; import 'package:tmail_ui_user/features/base/widget/compose_floating_button.dart';
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/sending_queue/presentation/sending_queue_controller.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/sending_queue_controller.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -10,9 +10,7 @@ import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/app_ba
import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/banner_message_sending_queue_widget.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/banner_message_sending_queue_widget.dart';
import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/sending_email_tile_widget.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/sending_email_tile_widget.dart';
class SendingQueueView extends GetWidget<SendingQueueController> class SendingQueueView extends GetWidget<SendingQueueController> with AppLoaderMixin {
with AppLoaderMixin,
ComposeFloatingButtonMixin {
const SendingQueueView({super.key}); const SendingQueueView({super.key});
@@ -33,9 +31,8 @@ class SendingQueueView extends GetWidget<SendingQueueController>
), ),
), ),
), ),
floatingActionButton: buildComposeFloatingButton( floatingActionButton: ComposeFloatingButton(
context, scrollController: controller.listSendingEmailController,
controller.listSendingEmailController,
onTap: () => controller.dashboardController!.goToComposer(ComposerArguments()) onTap: () => controller.dashboardController!.goToComposer(ComposerArguments())
), ),
); );
@@ -6,7 +6,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:model/model.dart'; import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart'; import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/base/mixin/compose_floating_button_mixin.dart'; import 'package:tmail_ui_user/features/base/widget/compose_floating_button.dart';
import 'package:tmail_ui_user/features/base/mixin/popup_menu_widget_mixin.dart'; import 'package:tmail_ui_user/features/base/mixin/popup_menu_widget_mixin.dart';
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
@@ -33,8 +33,7 @@ import 'package:tmail_ui_user/main/utils/app_utils.dart';
class ThreadView extends GetWidget<ThreadController> class ThreadView extends GetWidget<ThreadController>
with AppLoaderMixin, with AppLoaderMixin,
FilterEmailPopupMenuMixin, FilterEmailPopupMenuMixin,
PopupMenuWidgetMixin, PopupMenuWidgetMixin {
ComposeFloatingButtonMixin {
final _responsiveUtils = Get.find<ResponsiveUtils>(); final _responsiveUtils = Get.find<ResponsiveUtils>();
final _imagePaths = Get.find<ImagePaths>(); final _imagePaths = Get.find<ImagePaths>();
@@ -187,9 +186,8 @@ class ThreadView extends GetWidget<ThreadController>
padding: BuildUtils.isWeb padding: BuildUtils.isWeb
? EdgeInsets.zero ? EdgeInsets.zero
: controller.listEmailSelected.isNotEmpty ? const EdgeInsets.only(bottom: 70) : EdgeInsets.zero, : controller.listEmailSelected.isNotEmpty ? const EdgeInsets.only(bottom: 70) : EdgeInsets.zero,
child: buildComposeFloatingButton( child: ComposeFloatingButton(
context, scrollController: controller.listEmailController,
controller.listEmailController,
onTap: () => controller.mailboxDashBoardController.goToComposer(ComposerArguments()) onTap: () => controller.mailboxDashBoardController.goToComposer(ComposerArguments())
), ),
); );