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

33 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);
}