controller_pubsub

Creator: coderz1093

Last updated:

0 purchases

controller_pubsub Image
controller_pubsub Images

Languages

Categories

Add to Cart

Description:

controller pubsub

A Flutter package providing a simple implementation of the Publisher-Subscriber pattern for controllers. This package is designed to facilitate communication between controllers.
Features #


Controller Listener: A mixin class that allows classes to listen to controller notifications.


Controller Publisher: A mixin class that provides a mechanism for subscribing to a controller.


Controller Watcher: A singleton class that acts as the central hub for managing controller notifications.


Getting started #


Add the dependency to your pubspec.yaml file:
dependencies:
controller_pubsub: ^0.0.3
copied to clipboard


Usage #
Include short and useful examples for package users. Add longer examples
to /example folder.
/// This is a sample of how to use the [ControllerPublisher] mixin class.
class AuthBloc extends Bloc<AuthEvent, AuthState>
with ControllerPublisher<AuthBloc> {
final IAuthRepository _authRepository;
AuthBloc(this._authRepository) : super(const AuthState.initial()) {
on<AuthEvent>(
(event, emit) async {
await event.map(
authCheckRequested: (e) async {
final result = await _authRepository.isSignIn();
emit(
result
? const AuthState.authenticated()
: const AuthState.initial(),
);
if (result) {
notifySubscribers('Hi there!'); // This will notify all subscribers of this controller.
}
},
);
},
);
}
}
/// This is a sample of how to use the [ControllerListener] mixin class.
class LogInBloc extends Bloc<LogInEvent, LogInState>
with ControllerSubscriber<AuthBloc> {

@override
void handleNotification([value]) {
print(value); // This will print 'Hi there!' when the [AuthBloc] notifies this controller.
super.handleNotification(value);
}

@override
LogInBloc(this._signInRepository) : super(LogInState.initial()) {
addListener(this); // Don't forget to add the listener to the controller.
....
}

@override
Future<void> close() {
removeListener(this); // Don't forget to remove the listener from the controller.
return super.close();
}
}

copied to clipboard
Additional information #
This package serves as a helper when you need to listen to one BLoC in another BLoC and perform actions when the state changes.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.