diff --git a/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_bloc.dart b/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_bloc.dart index 1f2c84ed..f84e2bdd 100644 --- a/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_bloc.dart +++ b/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_bloc.dart @@ -13,6 +13,8 @@ class AnalyticsDevicesBloc this._analyticsDevicesService, ) : super(const AnalyticsDevicesState()) { on(_onLoadAnalyticsDevices); + on(_onSelectAnalyticsDevice); + on(_onClearAnalyticsDevice); } final AnalyticsDevicesService _analyticsDevicesService; @@ -28,6 +30,7 @@ class AnalyticsDevicesBloc AnalyticsDevicesState( status: AnalyticsDevicesStatus.loaded, devices: devices, + selectedDevice: devices.firstOrNull, ), ); } catch (e) { @@ -37,6 +40,27 @@ class AnalyticsDevicesBloc errorMessage: e.toString(), ), ); - } + } + } + + void _onSelectAnalyticsDevice( + SelectAnalyticsDeviceEvent event, + Emitter emit, + ) { + emit( + AnalyticsDevicesState( + selectedDevice: event.device, + devices: state.devices, + errorMessage: state.errorMessage, + status: state.status, + ), + ); + } + + void _onClearAnalyticsDevice( + ClearAnalyticsDeviceEvent event, + Emitter emit, + ) { + emit(const AnalyticsDevicesState()); } } diff --git a/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_event.dart b/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_event.dart index 10e0b55c..4a1f4eb0 100644 --- a/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_event.dart +++ b/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_event.dart @@ -15,3 +15,16 @@ final class LoadAnalyticsDevicesEvent extends AnalyticsDevicesEvent { @override List get props => [param]; } + +final class SelectAnalyticsDeviceEvent extends AnalyticsDevicesEvent { + const SelectAnalyticsDeviceEvent(this.device); + + final AnalyticsDevice device; + + @override + List get props => [device]; +} + +final class ClearAnalyticsDeviceEvent extends AnalyticsDevicesEvent { + const ClearAnalyticsDeviceEvent(); +} diff --git a/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_state.dart b/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_state.dart index 02a6765c..7c1be359 100644 --- a/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_state.dart +++ b/lib/pages/analytics/modules/analytics/blocs/analytics_devices/analytics_devices_state.dart @@ -7,12 +7,14 @@ final class AnalyticsDevicesState extends Equatable { this.status = AnalyticsDevicesStatus.initial, this.devices = const [], this.errorMessage, + this.selectedDevice, }); final AnalyticsDevicesStatus status; final List devices; + final AnalyticsDevice? selectedDevice; final String? errorMessage; @override - List get props => [status, devices, errorMessage]; + List get props => [status, devices, errorMessage, selectedDevice]; }