time_progress_tracker/lib/redux/redux_selectors.dart
Andreas Fahrecker e889f93d5c Cleaned up the repo
Singed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
2021-03-13 19:47:20 +01:00

59 lines
1.9 KiB
Dart

import 'dart:ui';
import 'package:time_progress_tracker/models/app_settings.dart';
import 'package:time_progress_tracker/redux/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
List<TimeProgress> timeProgressListSelector(AppState state) =>
state.timeProgressList;
List<TimeProgress> activeTimeProgressesSelector(AppState state) {
return state.timeProgressList
.where((timeProgress) =>
timeProgress.hasStarted() && !timeProgress.hasEnded())
.toList();
}
List<TimeProgress> inactiveTimeProgressesSelector(AppState state) {
return state.timeProgressList
.where((timeProgress) =>
!timeProgress.hasStarted() || timeProgress.hasEnded())
.toList();
}
@Deprecated("use active TimeProgresses Selector instead.")
List<TimeProgress> currentTimeProgressSelector(AppState state) {
int currentTime = DateTime.now().millisecondsSinceEpoch;
return state.timeProgressList
.where((tp) =>
currentTime >= tp.startTime.millisecondsSinceEpoch &&
tp.endTime.millisecondsSinceEpoch >= currentTime)
.toList();
}
List<TimeProgress> futureTimeProgressesSelector(AppState state) =>
state.timeProgressList
.where((timeProgress) =>
DateTime.now().millisecondsSinceEpoch <
timeProgress.startTime.millisecondsSinceEpoch)
.toList();
List<TimeProgress> 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, orElse: () => null);
}
AppSettings appSettingsSelector(AppState state) {
return state.appSettings;
}
Color doneColorSelector(AppState state) => state.appSettings.doneColor;