feat(ai-scribe): Load AI scribe config in dashboard
This commit is contained in:
@@ -54,7 +54,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/se
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_by_id_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_ai_scribe_config_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/identities/identity_interactors_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/preferences/bindings/preferences_interactors_bindings.dart';
|
||||
@@ -339,7 +338,6 @@ class ComposerBindings extends BaseBindings {
|
||||
Get.find<PrintEmailInteractor>(tag: composerId),
|
||||
Get.find<ComposerRepository>(tag: composerId),
|
||||
Get.find<SaveTemplateEmailInteractor>(tag: composerId),
|
||||
Get.find<GetAIScribeConfigInteractor>(tag: composerId),
|
||||
composerId: composerId,
|
||||
composerArgs: composerArguments,
|
||||
), tag: composerId);
|
||||
|
||||
@@ -107,10 +107,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_text_formatting_menu_state_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/validate_premium_storage_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/draggable_app_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_ai_scribe_config_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_ai_scribe_config_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/identity_extension.dart';
|
||||
import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart'
|
||||
@@ -164,7 +161,6 @@ class ComposerController extends BaseController
|
||||
final isMarkAsImportant = Rx<bool>(false);
|
||||
final isContentHeightExceeded = Rx<bool>(false);
|
||||
final editorTextSelection = Rxn<TextSelectionModel>();
|
||||
final _cachedAIScribeConfig = Rx<AIScribeConfig>(AIScribeConfig.initial());
|
||||
|
||||
final LocalFilePickerInteractor _localFilePickerInteractor;
|
||||
final LocalImagePickerInteractor _localImagePickerInteractor;
|
||||
@@ -183,7 +179,6 @@ class ComposerController extends BaseController
|
||||
final String? composerId;
|
||||
final ComposerArguments? composerArgs;
|
||||
final SaveTemplateEmailInteractor _saveTemplateEmailInteractor;
|
||||
final GetAIScribeConfigInteractor _getAIScribeConfigInteractor;
|
||||
|
||||
GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor;
|
||||
GetAutoCompleteInteractor? _getAutoCompleteInteractor;
|
||||
@@ -271,8 +266,6 @@ class ComposerController extends BaseController
|
||||
String get ownEmailAddress =>
|
||||
mailboxDashBoardController.ownEmailAddress.value;
|
||||
|
||||
AIScribeConfig get aiScribeConfig => _cachedAIScribeConfig.value;
|
||||
|
||||
late Worker uploadInlineImageWorker;
|
||||
late bool _isEmailBodyLoaded;
|
||||
|
||||
@@ -292,7 +285,6 @@ class ComposerController extends BaseController
|
||||
this.printEmailInteractor,
|
||||
this._composerRepository,
|
||||
this._saveTemplateEmailInteractor,
|
||||
this._getAIScribeConfigInteractor,
|
||||
{
|
||||
this.composerId,
|
||||
this.composerArgs,
|
||||
@@ -316,11 +308,6 @@ class ComposerController extends BaseController
|
||||
_beforeReconnectManager.addListener(onBeforeReconnect);
|
||||
_injectBinding();
|
||||
onKeyboardShortcutInit();
|
||||
_loadAIScribeConfig();
|
||||
}
|
||||
|
||||
void _loadAIScribeConfig() {
|
||||
consumeState(_getAIScribeConfigInteractor.execute());
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -421,8 +408,6 @@ class ComposerController extends BaseController
|
||||
richTextMobileTabletController?.insertImage(inlineImage);
|
||||
}
|
||||
maxWithEditor = null;
|
||||
} else if (success is GetAIScribeConfigSuccess) {
|
||||
_cachedAIScribeConfig.value = success.aiScribeConfig;
|
||||
} else {
|
||||
super.handleSuccessViewState(success);
|
||||
}
|
||||
|
||||
@@ -470,7 +470,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
sendMessageAction: () => controller.handleClickSendButton(context),
|
||||
requestReadReceiptAction: () => controller.toggleRequestReadReceipt(context),
|
||||
toggleMarkAsImportantAction: () => controller.toggleMarkAsImportant(context),
|
||||
onOpenAiAssistantModal: controller.aiScribeConfig.isEnabled && controller.isAIScribeAvailable
|
||||
onOpenAiAssistantModal: controller.isAIScribeAvailable
|
||||
? controller.openAIAssistantModal
|
||||
: null,
|
||||
)),
|
||||
|
||||
@@ -560,7 +560,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
toggleMarkAsImportantAction: () => controller.toggleMarkAsImportant(context),
|
||||
saveAsTemplateAction: () => controller.handleClickSaveAsTemplateButton(context),
|
||||
onOpenInsertLink: controller.openInsertLink,
|
||||
onOpenAiAssistantModal: controller.isAIScribeAvailable && controller.aiScribeConfig.isEnabled
|
||||
onOpenAiAssistantModal: controller.isAIScribeAvailable
|
||||
? controller.openAIAssistantModal
|
||||
: null,
|
||||
)),
|
||||
|
||||
+7
-1
@@ -13,7 +13,13 @@ extension HandleAiScribeInComposerExtension on ComposerController {
|
||||
session: mailboxDashBoardController.sessionCurrent,
|
||||
accountId: mailboxDashBoardController.accountId.value,
|
||||
);
|
||||
return aiCapability?.isScribeEndpointAvailable == true;
|
||||
final isScribeEndpointAvailable =
|
||||
aiCapability?.isScribeEndpointAvailable == true;
|
||||
|
||||
final isAIScribeConfigEnabled =
|
||||
mailboxDashBoardController.cachedAIScribeConfig.value.isEnabled;
|
||||
|
||||
return isAIScribeConfigEnabled && isScribeEndpointAvailable;
|
||||
}
|
||||
|
||||
Future<String> _getTextOnlyContentInEditor() async {
|
||||
|
||||
Reference in New Issue
Block a user