MainCubit<S extends MainBlocState> class abstract

A base class for all Cubits in the application.

This class extends BaseCubitDelegate and provides a foundation for creating Cubits with specific state types.

Type Parameters:

  • S: The type of states this Cubit will emit. Must extend MainBlocState.

Features:

Usage:

class CounterCubit extends MainCubit<CounterState> {
  CounterCubit() : super(const CounterState.initial());

  Future<void> increment() async {
    await cubitCatch(
      actions: () async {
        await Future.delayed(Duration(seconds: 1));
        emit(state.copyWith(count: state.count + 1));
      },
      keyLoading: 'increment',
      onError: handleError,
    );
  }

  void decrement() {
    if (state.count > 0) {
      emit(state.copyWith(count: state.count - 1));
    }
  }
}
Inheritance
Implementers

Constructors

MainCubit(S initialState)

Properties

commonBloc CommonBloc
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
isClosed bool
Whether the bloc is closed.
no setterinherited
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
state → S
The current state.
no setterinherited
stream Stream<S>
The current stream of states.
no setterinherited

Methods

addError(Object error, [StackTrace? stackTrace]) → void
Reports an error which triggers onError with an optional StackTrace.
inherited
catchError({required Future<void> actions(), bool isLoading = true, String keyLoading = LoadingKey.global, Future<void> onError(Object error, StackTrace stackTrace)?, Future<void> onFinally()?}) Future<void>
Executes a given asynchronous action within a try-catch block, handling loading states.
inherited
close() Future<void>
Closes the instance. This method should be called when the instance is no longer needed. Once close is called, the instance can no longer be used.
inherited
cubitCatch({required Future<void> actions(), bool isLoading = true, String keyLoading = LoadingKey.global, Future<void> onError(Object error, StackTrace stackTrace)?, Future<void> onFinally()?}) Future<void>
Executes a given asynchronous action within a try-catch block, handling loading states.
inherited
dispose() → void
inherited
emit(S state) → void
Updates the state to the provided state. emit does nothing if the state being emitted is equal to the current state.
inherited
hideLoading({String? key = LoadingKey.global}) → void
Hides the loading overlay for a specific key.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onChange(Change<S> change) → void
Called whenever a change occurs with the given change. A change occurs when a new state is emitted. onChange is called before the state of the cubit is updated. onChange is a great spot to add logging/analytics for a specific cubit.
inherited
onDeactivate() → void
onDependenciesChanged() → void
onError(Object error, StackTrace stackTrace) → void
Called whenever an error occurs and notifies BlocObserver.onError.
inherited
reset(S initialState) → void
Resets the bloc to its initial state.
inherited
showLoading({String? key = LoadingKey.global}) → void
Shows the loading overlay for a specific key.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited