Create an isAIScribeAvailable method
Check JMAP capability AND if AI is enabled in env.file and use this method everywhere where we checked env.file
This commit is contained in:
@@ -2,11 +2,14 @@ import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:scribe/scribe.dart';
|
||||
import 'package:scribe/scribe/ai/presentation/widgets/ai_scribe.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/controller/rich_text_mobile_tablet_controller.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/controller/rich_text_web_controller.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/widgets/mixins/text_selection_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
|
||||
mixin AIScribeInComposerMixin {
|
||||
final editorTextSelection = Rxn<EditorTextSelection>();
|
||||
@@ -16,6 +19,20 @@ mixin AIScribeInComposerMixin {
|
||||
RichTextMobileTabletController? get richTextMobileTabletController;
|
||||
ImagePaths get imagePaths;
|
||||
GenerateAITextInteractor get generateAITextInteractor;
|
||||
Session? get session;
|
||||
AccountId? get accountId;
|
||||
|
||||
bool get isAIScribeAvailable {
|
||||
if (!AIConfig.isAiEnabled) return false;
|
||||
|
||||
final currentSession = session;
|
||||
final currentAccountId = accountId;
|
||||
|
||||
if (currentSession == null || currentAccountId == null) return false;
|
||||
|
||||
final aiCapability = currentSession.getAICapability(currentAccountId);
|
||||
return aiCapability != null;
|
||||
}
|
||||
|
||||
Future<String> getTextOnlyContentInEditor();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user