From bfe46bb6ba33fe36bcbe96f57da1a1459419b0ca Mon Sep 17 00:00:00 2001 From: oliverhnat Date: Sun, 25 Feb 2024 17:41:53 +0100 Subject: [PATCH] Quick fix (last version wasn't stable) --- WordAX/WordAXModelView.swift | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/WordAX/WordAXModelView.swift b/WordAX/WordAXModelView.swift index b74eb5c..1622ae2 100644 --- a/WordAX/WordAXModelView.swift +++ b/WordAX/WordAXModelView.swift @@ -27,12 +27,12 @@ class WordAXModelView: ObservableObject { return nil } // if today is the date they're supposed to be shown - let displayToday = words.filter({ $0.lastSeenOn != nil && $0.lastSeenOn!.addSpacedRepetitionMilestone(milestone: $0.nextSpacedRepetitionMilestone!).isBeforeTodayOrToday()}) + + let displayToday = words.filter({ $0.lastSeenOn != nil && $0.lastSeenOn!.addSpacedRepetitionMilestone(milestone: $0.nextSpacedRepetitionMilestone).isBeforeTodayOrToday()}) if displayToday.count > 0 { return displayToday.first! } - // first word ever shown // let shownWords = words.filter({ $0.shown }) // if shownWords.count == 0 { return notShownWords.sorted(by: {$0.id < $1.id}).first @@ -86,8 +86,11 @@ extension Date { self.addingTimeInterval(TimeInterval(frequency.rawValue * 24 * 60 * 60)) } - func addSpacedRepetitionMilestone(milestone: WordAX.SpacedRepetitionMilestoneEnum) -> Date { - self.addingTimeInterval(TimeInterval(milestone.rawValue * 24 * 60 * 60)) + func addSpacedRepetitionMilestone(milestone: WordAX.SpacedRepetitionMilestoneEnum?) -> Date { + if milestone == nil { + return self + } + return self.addingTimeInterval(TimeInterval(milestone!.rawValue * 24 * 60 * 60)) } func isAfterToday() -> Bool {