34 lines
764 B
Dart
34 lines
764 B
Dart
|
|
import 'dart:async';
|
||
|
|
|
||
|
|
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
||
|
|
import 'package:rxdart/rxdart.dart';
|
||
|
|
|
||
|
|
class PreviewPackHolder {
|
||
|
|
final StreamController<PreviewPackState?> _streamController =
|
||
|
|
StreamController.broadcast();
|
||
|
|
PreviewPackState? _state;
|
||
|
|
|
||
|
|
PreviewPackHolder();
|
||
|
|
|
||
|
|
void setPreviewPacks(List<CardPackPreviewDto> packs) {
|
||
|
|
_state = PreviewPackState(packs);
|
||
|
|
_streamController.add(_state);
|
||
|
|
}
|
||
|
|
|
||
|
|
void clear() {
|
||
|
|
_state = null;
|
||
|
|
_streamController.add(_state);
|
||
|
|
}
|
||
|
|
|
||
|
|
PreviewPackState? get state => _state;
|
||
|
|
|
||
|
|
Stream<PreviewPackState?> get asStream =>
|
||
|
|
_streamController.stream.startWith(_state);
|
||
|
|
}
|
||
|
|
|
||
|
|
class PreviewPackState {
|
||
|
|
final List<CardPackPreviewDto> previewPacks;
|
||
|
|
|
||
|
|
PreviewPackState(this.previewPacks);
|
||
|
|
}
|