TF-4193 Handle multi click to enable Label visibility feature

This commit is contained in:
dab246
2025-12-09 13:43:43 +07:00
committed by Dat H. Pham
parent d1cd9efbab
commit 10038a3836
23 changed files with 330 additions and 43 deletions
@@ -0,0 +1,23 @@
import 'dart:core';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/get_label_visibility_state.dart';
class GetLabelVisibilityInteractor {
final ManageAccountRepository _manageAccountRepository;
GetLabelVisibilityInteractor(this._manageAccountRepository);
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right(GettingLabelVisibility());
final visible = await _manageAccountRepository.getLabelVisibility();
yield Right(GetLabelVisibilitySuccess(visible));
} catch (exception) {
yield Left(GetLabelVisibilityFailure(exception));
}
}
}
@@ -0,0 +1,23 @@
import 'dart:core';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/save_label_visibility_state.dart';
class SaveLabelVisibilityInteractor {
final ManageAccountRepository _manageAccountRepository;
SaveLabelVisibilityInteractor(this._manageAccountRepository);
Stream<Either<Failure, Success>> execute({bool visible = true}) async* {
try {
yield Right(SavingLabelVisibility());
await _manageAccountRepository.saveLabelVisibility(visible);
yield Right(SaveLabelVisibilitySuccess());
} catch (exception) {
yield Left(SaveLabelVisibilityFailure(exception));
}
}
}