Different types of error
dbof10 opened this issue · comments
FormzStatus
has very limited use cases. My case I need to identify different types of error to show different UI. submissionFailure
seems not exapandale. Any ideas?
Hi @dbof10 👋
Thanks for opening an issue!
You should be able to leverage the error
property on your custom FormzInput
to differentiate between different errors on at the individual input level. For broad form-level errors you can define your own state to encapsulate the FormzStatus along with any additional meta data. Let me know if that helps and if not, could you please share the link to a sample app which illustrates the issue you're facing? Thanks! 🙏
I have a simple class
enum SymbolValidationError { invalid }
class Symbol extends FormzInput<String, SymbolValidationError> {
const Symbol.pure() : super.pure('');
const Symbol.dirty([String value = '']) : super.dirty(value);
@override
SymbolValidationError validator(String value) {
return value.isNotEmpty ? null : SymbolValidationError.invalid;
}
}
BlocListener<QuoteDownloadCubit, QuoteDownloadState>(
listener: (context, state) {
},
);
State class
class QuoteDownloadState extends Equatable {
Symbol symbol;
FormzStatus status;
}
I just follow your example for login. Symbol returns SymbolValidationError. I dont see a place where I can access the a specific error type like you answered above. State has status. Status is a predefine enum. If I add more fields in the State class, it will solve my problem. I just want to leverage what the lib offers or what is recommended to do with this library.
@dbof10, using your example, You can check for the error status like this:
BlocListener<QuoteDownloadCubit, QuoteDownloadState>(
listener: (context, state) {
if (state.symbol.error == SymbolValidationError.invalid) {
// Handle invalid error
}
// Add more if statements as required
},
);