feat(ai-scribe): Load AI scribe config in dashboard
This commit is contained in:
+16
-3
@@ -120,6 +120,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dow
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart' as search;
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/ai_scribe/setup_cached_ai_scribe_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/cleanup_recent_search_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/delete_emails_in_mailbox_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_action_type_for_email_selection.dart';
|
||||
@@ -148,11 +149,14 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/sear
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
|
||||
import 'package:tmail_ui_user/features/mailto/presentation/model/mailto_arguments.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/create_new_rule_filter_state.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/state/get_all_vacation_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/update_vacation_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/create_new_email_rule_filter_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/domain/usecases/get_all_vacation_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_language_interactor.dart';
|
||||
@@ -273,6 +277,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
SaveLanguageInteractor? saveLanguageInteractor;
|
||||
GetTextFormattingMenuStateInteractor? getTextFormattingMenuStateInteractor;
|
||||
SaveTextFormattingMenuStateInteractor? saveTextFormattingMenuStateInteractor;
|
||||
GetAIScribeConfigInteractor? getAIScribeConfigInteractor;
|
||||
|
||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||
final selectedMailbox = Rxn<PresentationMailbox>();
|
||||
@@ -304,6 +309,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
final isPopupMenuOpened = RxBool(false);
|
||||
final octetsQuota = Rxn<Quota>();
|
||||
final isTextFormattingMenuOpened = RxBool(false);
|
||||
final cachedAIScribeConfig = Rx<AIScribeConfig>(AIScribeConfig.initial());
|
||||
|
||||
Map<Role, MailboxId> mapDefaultMailboxIdByRole = {};
|
||||
Map<MailboxId, PresentationMailbox> mapMailboxById = {};
|
||||
@@ -399,6 +405,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
}
|
||||
_handleArguments();
|
||||
_loadAppGrid();
|
||||
loadAIScribeConfig();
|
||||
super.onReady();
|
||||
}
|
||||
|
||||
@@ -524,6 +531,8 @@ class MailboxDashBoardController extends ReloadableController
|
||||
setUpDefaultEmailSortOrder(success.emailSortOrderType);
|
||||
} else if (success is GetTextFormattingMenuStateSuccess) {
|
||||
updateTextFormattingMenuState(success.isDisplayed);
|
||||
} else if (success is GetAIScribeConfigSuccess) {
|
||||
handleLoadAIScribeConfigSuccess(success.aiScribeConfig);
|
||||
} else {
|
||||
super.handleSuccessViewState(success);
|
||||
}
|
||||
@@ -571,6 +580,8 @@ class MailboxDashBoardController extends ReloadableController
|
||||
backToHomeScreen();
|
||||
} else if (failure is GetTextFormattingMenuStateFailure) {
|
||||
updateTextFormattingMenuState(false);
|
||||
} else if (failure is GetAIScribeConfigFailure) {
|
||||
handleLoadAIScribeConfigFailure();
|
||||
} else {
|
||||
super.handleFailureViewState(failure);
|
||||
}
|
||||
@@ -2047,6 +2058,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
notifyThreadDetailSettingUpdated();
|
||||
getServerSetting();
|
||||
spamReportController.getSpamReportStateAction();
|
||||
loadAIScribeConfig();
|
||||
}
|
||||
|
||||
Future<List<PresentationEmail>> quickSearchEmails(String query) async {
|
||||
@@ -2123,6 +2135,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
notifyThreadDetailSettingUpdated();
|
||||
getServerSetting();
|
||||
spamReportController.getSpamReportStateAction();
|
||||
loadAIScribeConfig();
|
||||
}
|
||||
|
||||
void _handleUpdateVacationSuccess(UpdateVacationSuccess success) {
|
||||
@@ -2451,7 +2464,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
void updateEmailList(List<PresentationEmail> newEmailList) {
|
||||
emailsInCurrentMailbox.value = newEmailList;
|
||||
}
|
||||
|
||||
|
||||
void openMailboxAction(PresentationMailbox presentationMailbox) {
|
||||
dispatchMailboxUIAction(OpenMailboxAction(presentationMailbox));
|
||||
}
|
||||
@@ -3217,7 +3230,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
leadingSVGIcon: imagePaths.icRecoverDeletedMessages,
|
||||
leadingSVGIconColor: Colors.white,
|
||||
backgroundColor: AppColor.primaryColor,
|
||||
textColor: Colors.white,
|
||||
textColor: Colors.white,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -3229,7 +3242,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
if (currentAccountId != null && currentSession != null) {
|
||||
final arguments = EmailRecoveryArguments(currentAccountId, currentSession);
|
||||
|
||||
final result = PlatformInfo.isWeb
|
||||
final result = PlatformInfo.isWeb
|
||||
? await DialogRouter.pushGeneralDialog(
|
||||
routeName: AppRoutes.emailRecovery,
|
||||
arguments: arguments,
|
||||
|
||||
Reference in New Issue
Block a user