diff --git a/lib/features/base/mixin/compose_floating_button_mixin.dart b/lib/features/base/widget/compose_floating_button.dart similarity index 85% rename from lib/features/base/mixin/compose_floating_button_mixin.dart rename to lib/features/base/widget/compose_floating_button.dart index e523795c0..517c4b10b 100644 --- a/lib/features/base/mixin/compose_floating_button_mixin.dart +++ b/lib/features/base/widget/compose_floating_button.dart @@ -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/utils/app_utils.dart'; -mixin ComposeFloatingButtonMixin { +class ComposeFloatingButton extends StatelessWidget { - Widget buildComposeFloatingButton( - BuildContext context, - ScrollController scrollController, - {VoidCallback? onTap} - ) { + final ScrollController scrollController; + final VoidCallback? onTap; + + const ComposeFloatingButton({ + super.key, + required this.scrollController, + this.onTap + }); + + @override + Widget build(BuildContext context) { final imagePaths = getBinding(); return Align( diff --git a/lib/features/sending_queue/presentation/sending_queue_view.dart b/lib/features/sending_queue/presentation/sending_queue_view.dart index eda810c45..3de51bd99 100644 --- a/lib/features/sending_queue/presentation/sending_queue_view.dart +++ b/lib/features/sending_queue/presentation/sending_queue_view.dart @@ -2,7 +2,7 @@ import 'package:core/presentation/extensions/color_extension.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/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/sending_queue/presentation/sending_queue_controller.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/sending_email_tile_widget.dart'; -class SendingQueueView extends GetWidget - with AppLoaderMixin, - ComposeFloatingButtonMixin { +class SendingQueueView extends GetWidget with AppLoaderMixin { const SendingQueueView({super.key}); @@ -33,9 +31,8 @@ class SendingQueueView extends GetWidget ), ), ), - floatingActionButton: buildComposeFloatingButton( - context, - controller.listSendingEmailController, + floatingActionButton: ComposeFloatingButton( + scrollController: controller.listSendingEmailController, onTap: () => controller.dashboardController!.goToComposer(ComposerArguments()) ), ); diff --git a/lib/features/thread/presentation/thread_view.dart b/lib/features/thread/presentation/thread_view.dart index 9052d28ea..d66d0baf2 100644 --- a/lib/features/thread/presentation/thread_view.dart +++ b/lib/features/thread/presentation/thread_view.dart @@ -6,7 +6,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.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/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/email/presentation/model/composer_arguments.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 with AppLoaderMixin, FilterEmailPopupMenuMixin, - PopupMenuWidgetMixin, - ComposeFloatingButtonMixin { + PopupMenuWidgetMixin { final _responsiveUtils = Get.find(); final _imagePaths = Get.find(); @@ -187,9 +186,8 @@ class ThreadView extends GetWidget padding: BuildUtils.isWeb ? EdgeInsets.zero : controller.listEmailSelected.isNotEmpty ? const EdgeInsets.only(bottom: 70) : EdgeInsets.zero, - child: buildComposeFloatingButton( - context, - controller.listEmailController, + child: ComposeFloatingButton( + scrollController: controller.listEmailController, onTap: () => controller.mailboxDashBoardController.goToComposer(ComposerArguments()) ), );