ReplayCubit<State> class abstract

A specialized Cubit which supports undo and redo operations.

ReplayCubit accepts an optional limit which determines the max size of the history.

A custom ReplayCubit can be created by extending ReplayCubit.

class CounterCubit extends ReplayCubit<int> {
  CounterCubit() : super(0);

  void increment() => emit(state + 1);
}

Then the built-in undo and redo operations can be used.

final cubit = CounterCubit();

cubit.increment();
print(cubit.state); // 1

cubit.undo();
print(cubit.state); // 0

cubit.redo();
print(cubit.state); // 1

The undo/redo history can be destroyed at any time by calling clear.

See also:

Inheritance
Mixed in types

Constructors

ReplayCubit(State state, {int? limit})
A specialized Cubit which supports undo and redo operations.

Properties

canRedo bool
Checks whether the undo/redo stack is at the current change.
no setterinherited
canUndo bool
Checks whether the undo/redo stack is empty.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
isClosed bool
Whether the bloc is closed.
no setterinherited
limit int
Sets the internal undo/redo size limit. By default there is no limit.
no getterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
state → State
The current state.
no setterinherited
stream Stream<State>
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
clearHistory() → void
Clear undo/redo history.
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
emit(State state) → void
Updates the state to the provided state. emit does nothing if the state being emitted is equal to the current state.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onChange(Change<State> 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
onError(Object error, StackTrace stackTrace) → void
Called whenever an error occurs and notifies BlocObserver.onError.
inherited
redo() → void
Redo the previous change.
inherited
shouldReplay(State state) bool
Checks whether the given state should be replayed from the undo/redo stack.
inherited
toString() String
A string representation of this object.
inherited
undo() → void
Undo the last change.
inherited

Operators

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