feat(ai-scribe): Load AI scribe config in dashboard

This commit is contained in:
dab246
2025-12-19 15:05:41 +07:00
committed by Dat H. Pham
parent 256234b3d8
commit 6e56a50713
18 changed files with 114 additions and 50 deletions
@@ -0,0 +1,30 @@
import 'package:core/utils/platform_info.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.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/usecases/get_ai_scribe_config_interactor.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
extension SetupCachedAiScribeExtension on MailboxDashBoardController {
void loadAIScribeConfig() {
if (PlatformInfo.isMobile) {
cachedAIScribeConfig.value = AIScribeConfig(isEnabled: false);
return;
}
getAIScribeConfigInteractor = getBinding<GetAIScribeConfigInteractor>();
if (getAIScribeConfigInteractor != null) {
consumeState(getAIScribeConfigInteractor!.execute());
} else {
handleLoadAIScribeConfigFailure();
}
}
void handleLoadAIScribeConfigSuccess(AIScribeConfig aiScribeConfig) {
cachedAIScribeConfig.value = aiScribeConfig;
}
void handleLoadAIScribeConfigFailure() {
cachedAIScribeConfig.value = AIScribeConfig.initial();
}
}