Files
workavia-mail-front/lib/features/thread_detail/presentation/thread_detail_controller.dart
T

54 lines
1.8 KiB
Dart

import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/thread_detail/domain/state/get_thread_by_id_state.dart';
import 'package:tmail_ui_user/features/thread_detail/domain/usecases/get_thread_by_id_interactor.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/handle_get_email_ids_by_thread_id_success.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/model/thread_detail_arguments.dart';
class ThreadDetailController extends BaseController {
final ThreadDetailArguments arguments;
final GetThreadByIdInteractor _getEmailIdsByThreadIdInteractor;
ThreadDetailController(
this.arguments,
this._getEmailIdsByThreadIdInteractor,
);
final emailIds = <EmailId>[].obs;
final mailboxDashBoardController = Get.find<MailboxDashBoardController>();
AccountId? get accountId => mailboxDashBoardController.accountId.value;
@override
void onInit() {
super.onInit();
if (accountId != null) {
consumeState(_getEmailIdsByThreadIdInteractor.execute(
arguments.threadId,
accountId!,
));
}
}
@override
void handleSuccessViewState(success) {
if (success is GetThreadByIdSuccess) {
handleGetEmailIdsByThreadIdSuccess(success);
} else {
super.handleSuccessViewState(success);
}
}
@override
void handleFailureViewState(failure) {
if (failure is GetThreadByIdFailure) {
// TODO: handle failure
return;
}
super.handleFailureViewState(failure);
}
}