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:
@@ -66,6 +66,9 @@ class ComposerView extends GetWidget<ComposerController> {
|
|||||||
controller.handleOpenContextMenu(context, position);
|
controller.handleOpenContextMenu(context, position);
|
||||||
},
|
},
|
||||||
isNetworkConnectionAvailable: controller.isNetworkConnectionAvailable,
|
isNetworkConnectionAvailable: controller.isNetworkConnectionAvailable,
|
||||||
|
onOpenAiAssistantModal: controller.isAIScribeAvailable
|
||||||
|
? controller.openAIAssistantModal
|
||||||
|
: null,
|
||||||
attachFileAction: () => controller.openPickAttachmentMenu(
|
attachFileAction: () => controller.openPickAttachmentMenu(
|
||||||
context,
|
context,
|
||||||
_pickAttachmentsActionTiles(context)
|
_pickAttachmentsActionTiles(context)
|
||||||
@@ -87,6 +90,9 @@ class ComposerView extends GetWidget<ComposerController> {
|
|||||||
controller.handleOpenContextMenu(context, position);
|
controller.handleOpenContextMenu(context, position);
|
||||||
},
|
},
|
||||||
isNetworkConnectionAvailable: controller.isNetworkConnectionAvailable,
|
isNetworkConnectionAvailable: controller.isNetworkConnectionAvailable,
|
||||||
|
onOpenAiAssistantModal: controller.isAIScribeAvailable
|
||||||
|
? controller.openAIAssistantModal
|
||||||
|
: null,
|
||||||
attachFileAction: () => controller.openPickAttachmentMenu(
|
attachFileAction: () => controller.openPickAttachmentMenu(
|
||||||
context,
|
context,
|
||||||
_pickAttachmentsActionTiles(context)
|
_pickAttachmentsActionTiles(context)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||||
import 'package:flutter/material.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/styles/mobile_app_bar_composer_widget_style.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ class AppBarComposerWidget extends StatelessWidget {
|
|||||||
final VoidCallback? insertImageAction;
|
final VoidCallback? insertImageAction;
|
||||||
final VoidCallback openRichToolbarAction;
|
final VoidCallback openRichToolbarAction;
|
||||||
final OnOpenContextMenuAction openContextMenuAction;
|
final OnOpenContextMenuAction openContextMenuAction;
|
||||||
|
final OnOpenAiAssistantModal? onOpenAiAssistantModal;
|
||||||
|
|
||||||
const AppBarComposerWidget({
|
const AppBarComposerWidget({
|
||||||
super.key,
|
super.key,
|
||||||
@@ -29,6 +31,7 @@ class AppBarComposerWidget extends StatelessWidget {
|
|||||||
this.isNetworkConnectionAvailable = false,
|
this.isNetworkConnectionAvailable = false,
|
||||||
this.attachFileAction,
|
this.attachFileAction,
|
||||||
this.insertImageAction,
|
this.insertImageAction,
|
||||||
|
this.onOpenAiAssistantModal,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -48,6 +51,15 @@ class AppBarComposerWidget extends StatelessWidget {
|
|||||||
onTapActionCallback: onCloseViewAction
|
onTapActionCallback: onCloseViewAction
|
||||||
),
|
),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
|
if (onOpenAiAssistantModal != null)
|
||||||
|
AiAssistantButton(
|
||||||
|
imagePaths: imagePaths,
|
||||||
|
margin: const EdgeInsetsDirectional.only(
|
||||||
|
start: MobileAppBarComposerWidgetStyle.space,
|
||||||
|
end: MobileAppBarComposerWidgetStyle.space,
|
||||||
|
),
|
||||||
|
onOpenAiAssistantModal: onOpenAiAssistantModal!,
|
||||||
|
),
|
||||||
TMailButtonWidget.fromIcon(
|
TMailButtonWidget.fromIcon(
|
||||||
icon: imagePaths.icRichToolbar,
|
icon: imagePaths.icRichToolbar,
|
||||||
iconColor: MobileAppBarComposerWidgetStyle.iconColor,
|
iconColor: MobileAppBarComposerWidgetStyle.iconColor,
|
||||||
|
|||||||
+12
@@ -1,6 +1,7 @@
|
|||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||||
import 'package:flutter/material.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/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/features/composer/presentation/widgets/mobile/app_bar_composer_widget.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
@@ -16,6 +17,7 @@ class LandscapeAppBarComposerWidget extends StatelessWidget {
|
|||||||
final VoidCallback? insertImageAction;
|
final VoidCallback? insertImageAction;
|
||||||
final VoidCallback openRichToolbarAction;
|
final VoidCallback openRichToolbarAction;
|
||||||
final OnOpenContextMenuAction openContextMenuAction;
|
final OnOpenContextMenuAction openContextMenuAction;
|
||||||
|
final OnOpenAiAssistantModal? onOpenAiAssistantModal;
|
||||||
|
|
||||||
const LandscapeAppBarComposerWidget({
|
const LandscapeAppBarComposerWidget({
|
||||||
super.key,
|
super.key,
|
||||||
@@ -28,6 +30,7 @@ class LandscapeAppBarComposerWidget extends StatelessWidget {
|
|||||||
this.isNetworkConnectionAvailable = false,
|
this.isNetworkConnectionAvailable = false,
|
||||||
this.attachFileAction,
|
this.attachFileAction,
|
||||||
this.insertImageAction,
|
this.insertImageAction,
|
||||||
|
this.onOpenAiAssistantModal,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -50,6 +53,15 @@ class LandscapeAppBarComposerWidget extends StatelessWidget {
|
|||||||
onTapActionCallback: onCloseViewAction
|
onTapActionCallback: onCloseViewAction
|
||||||
),
|
),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
|
if (onOpenAiAssistantModal != null)
|
||||||
|
AiAssistantButton(
|
||||||
|
imagePaths: imagePaths,
|
||||||
|
margin: const EdgeInsetsDirectional.only(
|
||||||
|
start: MobileAppBarComposerWidgetStyle.space,
|
||||||
|
end: MobileAppBarComposerWidgetStyle.space,
|
||||||
|
),
|
||||||
|
onOpenAiAssistantModal: onOpenAiAssistantModal!,
|
||||||
|
),
|
||||||
TMailButtonWidget.fromIcon(
|
TMailButtonWidget.fromIcon(
|
||||||
icon: imagePaths.icRichToolbar,
|
icon: imagePaths.icRichToolbar,
|
||||||
iconColor: MobileAppBarComposerWidgetStyle.iconColor,
|
iconColor: MobileAppBarComposerWidgetStyle.iconColor,
|
||||||
|
|||||||
Reference in New Issue
Block a user