Events
Defining Events
Events must be defined as Dart enums and registered with XWidget:
enum AppEvent {
userLoggedIn,
userLoggedOut,
dataRefreshed,
themeChanged,
cartUpdated,
}
void main() {
XWidget.registerEnum('AppEvent', AppEvent.values);
runApp(MyApp());
}
Firing Events
Fire events from anywhere in your application:
// Fire event without payload
EventNotifier.notify(AppEvent.userLoggedIn);
// Fire event with payload
EventNotifier.notify(AppEvent.cartUpdated, {'itemCount': 5, 'total': 99.99});
// From a controller
class UserController extends Controller {
Future<void> login(String email, String password) async {
await api.login(email, password);
EventNotifier.notify(AppEvent.userLoggedIn, {'email': email});
}
}