import 'package:time_progress_tracker/models/app_state.dart'; import 'package:time_progress_tracker/models/time_progress.dart'; List timeProgressListSelector(AppState state) => state.timeProgressList; List currentTimeProgressSelector(AppState state) { int currentTime = DateTime.now().millisecondsSinceEpoch; return state.timeProgressList .where((tp) => currentTime >= tp.startTime.millisecondsSinceEpoch && tp.endTime.millisecondsSinceEpoch >= currentTime) .toList(); } List futureTimeProgressesSelector(AppState state) => state.timeProgressList .where((timeProgress) => DateTime.now().millisecondsSinceEpoch < timeProgress.startTime.millisecondsSinceEpoch) .toList(); List pastTimeProgressesSelector(AppState state) => state.timeProgressList .where((tp) => tp.endTime.millisecondsSinceEpoch < DateTime.now().millisecondsSinceEpoch) .toList(); TimeProgress timeProgressByIdSelector(AppState state, String id) { if (state.timeProgressList.length < 1) return null; return state.timeProgressList .firstWhere((timeProgress) => timeProgress.id == id); }