hubDataProviderFamily top-level property

AutoDisposeStateNotifierProviderFamily<HubDataProvider, AsyncValue<HubData>, String> hubDataProviderFamily
final

Implementation

final hubDataProviderFamily = StateNotifierProvider.autoDispose
    .family<HubDataProvider, AsyncValue<HubData>, String>(
  (ref, serial) {
    final bleManager = ref.read(hubBleManagerFamily(serial).notifier);
    final notifier = HubDataProvider(bleManager, ref);

    ref.listen<BleConnectionStatus>(
      hubBleManagerFamily(serial),
      (prev, next) {
        if (next is BleConnected) {
          if (prev is! BleConnected) {
            unawaited(notifier.loadConnectionData(force: true));
          }
          return;
        }

        notifier.clearLoadState();
      },
      fireImmediately: true,
    );

    return notifier;
  },
);