mnemo_cards/lib/features/packs/pack_holder.dart
2024-05-22 23:48:44 +03:00

34 lines
691 B
Dart

import 'dart:async';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:rxdart/rxdart.dart';
class PackHolder {
final StreamController<PackState?> _streamController =
StreamController.broadcast();
PackState? _state;
PackHolder();
void setPacks(List<CardPackDto> packs) {
_state = PackState(
packs,
);
_streamController.add(_state);
}
void clear() {
_state = null;
_streamController.add(_state);
}
PackState? get state => _state;
Stream<PackState?> get asStream => _streamController.stream.startWith(_state);
}
class PackState {
final List<CardPackDto> packsWithCards;
PackState(this.packsWithCards);
}