MIF_E31222656/lib/utils/app_events.dart

36 lines
1.0 KiB
Dart

import 'package:flutter/material.dart';
import 'dart:async';
// Event untuk memberitahu bahwa jadwal telah diperbarui
class ScheduleUpdatedEvent {
final bool success;
ScheduleUpdatedEvent({this.success = true});
}
// Event bus sederhana untuk komunikasi antar widget
class AppEventBus {
static final AppEventBus _instance = AppEventBus._internal();
factory AppEventBus() {
return _instance;
}
AppEventBus._internal();
// Stream controller untuk event ScheduleUpdated
final _scheduleUpdatedController = StreamController<ScheduleUpdatedEvent>.broadcast();
// Stream untuk mendengarkan event ScheduleUpdated
Stream<ScheduleUpdatedEvent> get onScheduleUpdated => _scheduleUpdatedController.stream;
// Method untuk memicu event ScheduleUpdated
void fireScheduleUpdated({bool success = true}) {
_scheduleUpdatedController.add(ScheduleUpdatedEvent(success: success));
}
// Method untuk dispose stream controller
void dispose() {
_scheduleUpdatedController.close();
}
}