TF-1631 Add abstract class FcmBaseController

(cherry picked from commit 920093f24785669fe5267dca95de8754a26096f3)
This commit is contained in:
dab246
2023-03-28 10:37:12 +07:00
committed by Dat Vu
parent c45118021e
commit 72906ceb3b
@@ -0,0 +1,25 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.dart';
import 'package:dartz/dartz.dart';
abstract class FcmBaseController {
void consumeState(Stream<Either<Failure, Success>> newStateStream) {
newStateStream.listen(
_handleStateStream,
onError: (error, stackTrace) {
logError('FcmBaseController::consumeState():onError:error: $error | stackTrace: $stackTrace');
}
);
}
void _handleStateStream(Either<Failure, Success> newState) {
newState.fold(handleFailureViewState, handleSuccessViewState);
}
void handleFailureViewState(Failure failure);
void handleSuccessViewState(Success success);
}