Display sparkle button in mobile app bar to launch AI Scribe

- Same icon than for desktop
- Displayed only if AI Scribe is enabled
This commit is contained in:
Théo Poizat
2026-01-07 16:18:20 +01:00
committed by Dat H. Pham
parent 089eb7b75f
commit 245dfc714d
3 changed files with 30 additions and 0 deletions
@@ -66,6 +66,9 @@ class ComposerView extends GetWidget<ComposerController> {
controller.handleOpenContextMenu(context, position);
},
isNetworkConnectionAvailable: controller.isNetworkConnectionAvailable,
onOpenAiAssistantModal: controller.isAIScribeAvailable
? controller.openAIAssistantModal
: null,
attachFileAction: () => controller.openPickAttachmentMenu(
context,
_pickAttachmentsActionTiles(context)
@@ -87,6 +90,9 @@ class ComposerView extends GetWidget<ComposerController> {
controller.handleOpenContextMenu(context, position);
},
isNetworkConnectionAvailable: controller.isNetworkConnectionAvailable,
onOpenAiAssistantModal: controller.isAIScribeAvailable
? controller.openAIAssistantModal
: null,
attachFileAction: () => controller.openPickAttachmentMenu(
context,
_pickAttachmentsActionTiles(context)
@@ -1,6 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/presentation/widgets/button/ai_assistant_button.dart';
import 'package:tmail_ui_user/features/composer/presentation/styles/mobile_app_bar_composer_widget_style.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -17,6 +18,7 @@ class AppBarComposerWidget extends StatelessWidget {
final VoidCallback? insertImageAction;
final VoidCallback openRichToolbarAction;
final OnOpenContextMenuAction openContextMenuAction;
final OnOpenAiAssistantModal? onOpenAiAssistantModal;
const AppBarComposerWidget({
super.key,
@@ -29,6 +31,7 @@ class AppBarComposerWidget extends StatelessWidget {
this.isNetworkConnectionAvailable = false,
this.attachFileAction,
this.insertImageAction,
this.onOpenAiAssistantModal,
});
@override
@@ -48,6 +51,15 @@ class AppBarComposerWidget extends StatelessWidget {
onTapActionCallback: onCloseViewAction
),
const Spacer(),
if (onOpenAiAssistantModal != null)
AiAssistantButton(
imagePaths: imagePaths,
margin: const EdgeInsetsDirectional.only(
start: MobileAppBarComposerWidgetStyle.space,
end: MobileAppBarComposerWidgetStyle.space,
),
onOpenAiAssistantModal: onOpenAiAssistantModal!,
),
TMailButtonWidget.fromIcon(
icon: imagePaths.icRichToolbar,
iconColor: MobileAppBarComposerWidgetStyle.iconColor,
@@ -1,6 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/presentation/widgets/button/ai_assistant_button.dart';
import 'package:tmail_ui_user/features/composer/presentation/styles/mobile_app_bar_composer_widget_style.dart';
import 'package:tmail_ui_user/features/composer/presentation/widgets/mobile/app_bar_composer_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -16,6 +17,7 @@ class LandscapeAppBarComposerWidget extends StatelessWidget {
final VoidCallback? insertImageAction;
final VoidCallback openRichToolbarAction;
final OnOpenContextMenuAction openContextMenuAction;
final OnOpenAiAssistantModal? onOpenAiAssistantModal;
const LandscapeAppBarComposerWidget({
super.key,
@@ -28,6 +30,7 @@ class LandscapeAppBarComposerWidget extends StatelessWidget {
this.isNetworkConnectionAvailable = false,
this.attachFileAction,
this.insertImageAction,
this.onOpenAiAssistantModal,
});
@override
@@ -50,6 +53,15 @@ class LandscapeAppBarComposerWidget extends StatelessWidget {
onTapActionCallback: onCloseViewAction
),
const Spacer(),
if (onOpenAiAssistantModal != null)
AiAssistantButton(
imagePaths: imagePaths,
margin: const EdgeInsetsDirectional.only(
start: MobileAppBarComposerWidgetStyle.space,
end: MobileAppBarComposerWidgetStyle.space,
),
onOpenAiAssistantModal: onOpenAiAssistantModal!,
),
TMailButtonWidget.fromIcon(
icon: imagePaths.icRichToolbar,
iconColor: MobileAppBarComposerWidgetStyle.iconColor,