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
@@ -1,5 +1,6 @@
import 'dart:ui';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
@@ -9,4 +10,6 @@ abstract class ManageAccountDataSource {
Future<PreferencesSetting> toggleLocalSettingsState(PreferencesConfig preferencesConfig);
Future<PreferencesSetting> getLocalSettings();
Future<AIScribeConfig> getAiScribeConfigLocalSettings();
}
@@ -64,4 +64,11 @@ class ManageAccountDataSourceImpl extends ManageAccountDataSource {
return await _preferencesSettingManager.loadPreferences();
}).catchError(_exceptionThrower.throwException);
}
@override
Future<AIScribeConfig> getAiScribeConfigLocalSettings() {
return Future.sync(() async {
return await _preferencesSettingManager.getAIScribeConfig();
}).catchError(_exceptionThrower.throwException);
}
}
@@ -166,6 +166,4 @@ class PreferencesSettingManager {
final updatedConfig = currentConfig.copyWith(isEnabled: isEnabled);
await savePreferences(updatedConfig);
}
}
@@ -1,6 +1,7 @@
import 'dart:ui';
import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_account_datasource.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/model/preferences/preferences_config.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
@@ -25,4 +26,9 @@ class ManageAccountRepositoryImpl extends ManageAccountRepository {
Future<PreferencesSetting> getLocalSettings() {
return dataSource.getLocalSettings();
}
@override
Future<AIScribeConfig> getAiScribeConfigLocalSettings() {
return dataSource.getAiScribeConfigLocalSettings();
}
}
@@ -1,5 +1,6 @@
import 'dart:ui';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
@@ -9,4 +10,6 @@ abstract class ManageAccountRepository {
Future<PreferencesSetting> toggleLocalSettingsState(PreferencesConfig preferencesConfig);
Future<PreferencesSetting> getLocalSettings();
Future<AIScribeConfig> getAiScribeConfigLocalSettings();
}
@@ -12,8 +12,9 @@ class GetAIScribeConfigInteractor {
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right(GettingAIScribeConfigState());
final preferencesSetting = await _manageAccountRepository.getLocalSettings();
yield Right(GetAIScribeConfigSuccess(preferencesSetting.aiScribeConfig));
final aiScribeConfig =
await _manageAccountRepository.getAiScribeConfigLocalSettings();
yield Right(GetAIScribeConfigSuccess(aiScribeConfig));
} catch (e) {
yield Left(GetAIScribeConfigFailure(exception: e));
}
@@ -63,10 +63,6 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
() => SaveLanguageInteractor(Get.find<ManageAccountRepository>(tag: composerId)),
tag: composerId,
);
Get.lazyPut(
() => GetAIScribeConfigInteractor(Get.find<ManageAccountRepository>(tag: composerId)),
tag: composerId,
);
}
@override