SimpleImageFormBloc(- String? appId,
- {FormAction? formAction}
)
Implementation
SimpleImageFormBloc(this.appId, {this.formAction})
: super(SimpleImageFormUninitialized()) {
on<InitialiseNewSimpleImageFormEvent>((event, emit) {
SimpleImageFormLoaded loaded = SimpleImageFormLoaded(
value: SimpleImageModel(
documentID: "",
appId: "",
description: "",
));
emit(loaded);
});
on<InitialiseSimpleImageFormEvent>((event, emit) async {
// Need to re-retrieve the document from the repository so that I get all associated types
SimpleImageFormLoaded loaded = SimpleImageFormLoaded(
value: await simpleImageRepository(appId: appId)!
.get(event.value!.documentID));
emit(loaded);
});
on<InitialiseSimpleImageFormNoLoadEvent>((event, emit) async {
SimpleImageFormLoaded loaded = SimpleImageFormLoaded(value: event.value);
emit(loaded);
});
SimpleImageModel? newValue;
on<ChangedSimpleImageDocumentID>((event, emit) async {
if (state is SimpleImageFormInitialized) {
final currentState = state as SimpleImageFormInitialized;
newValue = currentState.value!.copyWith(documentID: event.value);
if (formAction == FormAction.addAction) {
emit(await _isDocumentIDValid(event.value, newValue!));
} else {
emit(SubmittableSimpleImageForm(value: newValue));
}
}
});
on<ChangedSimpleImageDescription>((event, emit) async {
if (state is SimpleImageFormInitialized) {
final currentState = state as SimpleImageFormInitialized;
newValue = currentState.value!.copyWith(description: event.value);
emit(SubmittableSimpleImageForm(value: newValue));
}
});
on<ChangedSimpleImageImage>((event, emit) async {
if (state is SimpleImageFormInitialized) {
final currentState = state as SimpleImageFormInitialized;
if (event.value != null) {
newValue = currentState.value!.copyWith(
image: await platformMediumRepository(appId: appId)!
.get(event.value));
}
emit(SubmittableSimpleImageForm(value: newValue));
}
});
on<ChangedSimpleImageConditions>((event, emit) async {
if (state is SimpleImageFormInitialized) {
final currentState = state as SimpleImageFormInitialized;
newValue = currentState.value!.copyWith(conditions: event.value);
emit(SubmittableSimpleImageForm(value: newValue));
}
});
}