TF-3416 Implement preview EML attachment

This commit is contained in:
dab246
2025-01-13 10:02:50 +07:00
committed by Dat H. Pham
parent 7cbdfddb6d
commit d304083b2e
54 changed files with 1489 additions and 148 deletions
@@ -0,0 +1,41 @@
import 'package:dartz/dartz.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/email/domain/exceptions/email_exceptions.dart';
import 'package:tmail_ui_user/features/email/domain/state/get_preview_email_content_shared_state.dart';
import 'package:tmail_ui_user/features/email/domain/usecases/get_preview_email_eml_content_shared_interactor.dart';
import 'package:tmail_ui_user/main/routes/route_utils.dart';
class EmailPreviewerController extends BaseController {
final GetPreviewEmailEMLContentSharedInteractor _getPreviewEmailEMLContentSharedInteractor;
EmailPreviewerController(
this._getPreviewEmailEMLContentSharedInteractor,
);
@override
void onReady() {
super.onReady();
_getPreviewEmailEMLContentShared();
}
void _getPreviewEmailEMLContentShared() {
final parameters = Get.parameters;
if (parameters.isEmpty) {
consumeState(Stream.value(Left(GetPreviewEmailEMLContentSharedFailure(
NotFoundBlobIdException([])))));
return;
}
final keyStored = parameters[RouteUtils.paramID];
if (keyStored?.trim().isNotEmpty == true) {
consumeState(_getPreviewEmailEMLContentSharedInteractor.execute(keyStored!));
} else {
consumeState(Stream.value(Left(GetPreviewEmailEMLContentSharedFailure(
NotFoundBlobIdException([])))));
}
}
}