From 9a25d3c2589e295eb71de86a951410e4fda17ae4 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 11 Feb 2025 21:49:15 +0700 Subject: [PATCH] TF-3478 Create ComposerManager to manage composer Signed-off-by: dab246 --- .../manager/composer_manager.dart | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/features/composer/presentation/manager/composer_manager.dart diff --git a/lib/features/composer/presentation/manager/composer_manager.dart b/lib/features/composer/presentation/manager/composer_manager.dart new file mode 100644 index 000000000..ab7137884 --- /dev/null +++ b/lib/features/composer/presentation/manager/composer_manager.dart @@ -0,0 +1,28 @@ +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'; + +class ComposerManager extends GetxController { + final RxMap composers = {}.obs; + + String addComposer() { + final String id = DateTime.now().millisecondsSinceEpoch.toString(); + log('ComposerManager::addComposer:ID = $id'); + ComposerBindings(composerId: id).dependencies(); + final ComposerController controller = Get.find(tag: id); + composers[id] = controller; + return id; + } + + void removeComposer(String id) { + if (composers.containsKey(id)) { + ComposerBindings(composerId: id).dispose(); + composers.remove(id); + } + } + + List get composerIds => composers.keys.toList(); + + ComposerController? getComposer(String id) => composers[id]; +} \ No newline at end of file