computeScheduleFromCardState method

dynamic computeScheduleFromCardState (CardState state, DateTime now)

Implementation

static computeScheduleFromCardState(CardState state, DateTime now) {
  if (state.mode == "lapsed" || state.mode == "learning") {
    return "learning";
  } else if (state.mode == "reviewing") {
    var diff = dateDiffInDays(calculateDueDate(state), now);
    if (diff < 0) {
      return "later";
    } else if (diff >= 0 && diff < 1) {
      return "due";
    } else if (diff >= 1) {
      return "overdue";
    }
  }

  throw Exception("Issue with mode and calculation of a cardState");
}