Files
Client/lib/state/app/modules/ticker/bloc/ticker_state.dart
T

26 lines
1.0 KiB
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
import '../../../../../api/marianumconnect/queries/get_ticker/get_ticker_response.dart';
import '../../../../../api/marianumconnect/queries/get_ticker_nav/get_ticker_nav_response.dart';
part 'ticker_state.freezed.dart';
part 'ticker_state.g.dart';
/// Hydrated ticker module state: the current "Aktuelles" post, the filtered
/// page tree and the slug of the page the user last had open ([selectedSlug],
/// null = "Aktuelles" home). Persisting the slug lets the ticker reopen on the
/// last page instead of always falling back to home; a slug that is no longer
/// in [nav] (deleted/hidden) is discarded by the view. Page contents are loaded
/// on demand in the detail screen and are deliberately not cached here.
@freezed
abstract class TickerState with _$TickerState {
const factory TickerState({
TickerResponse? ticker,
TickerNavResponse? nav,
String? selectedSlug,
}) = _TickerState;
factory TickerState.fromJson(Map<String, dynamic> json) =>
_$TickerStateFromJson(json);
}