submission_state
A Dart/Flutter package that provides abstract base classes and commonly used states for BLoC (Business Logic Component) and form submissions, following SOLID principles and leveraging Equatable for value equality.
Features
BaseBloc: Abstract base class for all BLoC implementations.BaseState: Common BLoC states likeInitial,DataLoading,Success,LoadingFailed.FormSubmissionState: Specialized states for form submissions includingFormSubmitting,SubmissionSuccess, andSubmissionFailed.- Built-in support for value equality using Equatable.
Installation
Add this package to your pubspec.yaml:
dependencies:
submission_state: <latest_version>
Then import it in your Dart files:
import 'package:submission_state/submission_state.dart';
Usage
Creating a BLoC
class MyBloc extends BaseBloc {
@override
void dispose() {
// Close streams/controllers here
}
}
Using BaseState
class MyState extends BaseState {}
// Emitting a state
emit(DataLoading());
emit(Success());
emit(LoadingFailed('An error occurred'));
Using FormSubmissionState
class MyFormBloc extends BaseBloc {
void submitForm() {
emit(FormSubmitting());
try {
// Process submission
emit(SubmissionSuccess());
} catch (e) {
emit(SubmissionFailed(e.toString()));
}
}
@override
void dispose() {}
}
Benefits
- Simplifies BLoC implementation.
- Reduces boilerplate for state management.
- Makes form submission handling straightforward.
- Fully compatible with Equatable for clean state comparisons.
Contributions
Feel free to open issues or pull requests.
License
© MIT License. Developed with ❤️ by Shohidul Islam