TF-3478 Use ComposerManager to open & close single composer
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -2,27 +2,34 @@ import 'package:core/utils/app_logger.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
|
||||
class ComposerManager extends GetxController {
|
||||
final RxMap<String, ComposerController> composers = <String, ComposerController>{}.obs;
|
||||
|
||||
String addComposer() {
|
||||
void addComposer(ComposerArguments composerArguments) {
|
||||
final String id = DateTime.now().millisecondsSinceEpoch.toString();
|
||||
log('ComposerManager::addComposer:ID = $id');
|
||||
ComposerBindings(composerId: id).dependencies();
|
||||
final ComposerController controller = Get.find<ComposerController>(tag: id);
|
||||
composers[id] = controller;
|
||||
return id;
|
||||
ComposerBindings(
|
||||
composerId: id,
|
||||
composerArguments: composerArguments,
|
||||
).dependencies();
|
||||
composers[id] = Get.find<ComposerController>(tag: id);
|
||||
log('ComposerManager::addComposer:Success');
|
||||
}
|
||||
|
||||
void removeComposer(String id) {
|
||||
log('ComposerManager::removeComposer:ID = $id');
|
||||
if (composers.containsKey(id)) {
|
||||
ComposerBindings(composerId: id).dispose();
|
||||
composers.remove(id);
|
||||
log('ComposerManager::removeComposer:Success');
|
||||
}
|
||||
}
|
||||
|
||||
bool get hasComposer => composers.isNotEmpty;
|
||||
|
||||
List<String> get composerIds => composers.keys.toList();
|
||||
|
||||
ComposerController? getComposer(String id) => composers[id];
|
||||
String get singleComposerId => composerIds.first;
|
||||
}
|
||||
Reference in New Issue
Block a user