wrapChanges<ChangeValue, Value> method

StateStream<Value> wrapChanges<ChangeValue, Value>({
  1. required ChangeValue changeMapper(
    1. State
    ),
  2. required Value stateMapper(
    1. StoreChange<ChangeValue>
    ),
  3. required Value currentMapper(
    1. State
    ),
})

StateStream object for changes with given mapper for instance state

changeMapper - mapper function to get exact state field to listen to stateMapper - mapper function to get value from StoreChange currentMapper - mapper function to get current value

late final isUploadedLoadingStream = contentInteractor.wrapChanges(
  changeMapper: (state) => state,
  stateMapper: (value) => isUploadedLoading(),
  currentMapper: (value) => isUploadedLoading(),
);

Implementation

StateStream<Value> wrapChanges<ChangeValue, Value>({
  required ChangeValue Function(State) changeMapper,
  required Value Function(StoreChange<ChangeValue>) stateMapper,
  required Value Function(State) currentMapper,
}) {
  return StateStream(
    changes(changeMapper).map((change) => stateMapper(change)),
    () => currentMapper(state),
  );
}