// ignore_for_file: always_specify_types part of 'providers_cubit.dart'; class ProvidersState extends Equatable { const ProvidersState(this.all); final List all; ProvidersState updateElement(final ProviderModel provider, final StateType newState) { final List newList = [...all]; final int index = newList.indexOf(provider); newList[index] = provider.updateState(newState); return ProvidersState(newList); } List get connected => all.where((final service) => service.state != StateType.uninitialized).toList(); List get uninitialized => all.where((final service) => service.state == StateType.uninitialized).toList(); bool get isFullyInitialized => uninitialized.isEmpty; @override List get props => all; } class InitialProviderState extends ProvidersState { InitialProviderState() : super( ProviderType.values .map( (final type) => ProviderModel( state: StateType.uninitialized, type: type, ), ) .toList(), ); }