import 'package:core/core.dart'; import 'package:dartz/dartz.dart'; import 'package:get/get.dart'; abstract class BaseController extends GetxController { final viewState = Rx>(Right(UIState.idle)); void consumeState(Stream> newStateStream) async { newStateStream.listen( (state) => onData(state), onError: (error) => onError(error), onDone: () => onDone() ); } void onData(Either newState) { viewState.value = newState; } void onError(dynamic error); void onDone(); }