diff --git a/WordAX/Model/DataController.swift b/WordAX/Model/DataController.swift index a544a47..53e3fcd 100644 --- a/WordAX/Model/DataController.swift +++ b/WordAX/Model/DataController.swift @@ -53,6 +53,7 @@ class DataController: ObservableObject { flashcard.dateAdded = [Date(), Date().addingTimeInterval(-86400), Date().addingTimeInterval(-172800)].randomElement()! flashcard.favorite = [true, false].randomElement()! flashcard.deck = decks.randomElement() + flashcard.hint = ["This is a small hint", "Hint", "This is a very long hint that maybe should be even longer olorem ipsum to cover everything but I don't know what else to write Lorem Ipsum", "This is something in between hint that doesn'coveres the mid cases Lorem Ipsujm Lor"].randomElement() } do { try viewContext.save() diff --git a/WordAX/Model/Flashcard/Flashcard+CoreDataProperties.swift b/WordAX/Model/Flashcard/Flashcard+CoreDataProperties.swift index 33d0fe1..7d03530 100644 --- a/WordAX/Model/Flashcard/Flashcard+CoreDataProperties.swift +++ b/WordAX/Model/Flashcard/Flashcard+CoreDataProperties.swift @@ -26,6 +26,7 @@ extension Flashcard { @NSManaged public var shown: Bool @NSManaged public var shownCount: Int64 @NSManaged public var deck: Deck? + @NSManaged public var hint: String? } diff --git a/WordAX/Model/WordAXCD.xcdatamodeld/WordAX0.0.4.xcdatamodel/contents b/WordAX/Model/WordAXCD.xcdatamodeld/WordAX0.0.4.xcdatamodel/contents index ed23f40..ba7742d 100644 --- a/WordAX/Model/WordAXCD.xcdatamodeld/WordAX0.0.4.xcdatamodel/contents +++ b/WordAX/Model/WordAXCD.xcdatamodeld/WordAX0.0.4.xcdatamodel/contents @@ -1,5 +1,5 @@ - + @@ -10,6 +10,7 @@ + diff --git a/WordAX/Views/Anki/AnkiView.swift b/WordAX/Views/Anki/AnkiView.swift index a8409b9..1335da3 100644 --- a/WordAX/Views/Anki/AnkiView.swift +++ b/WordAX/Views/Anki/AnkiView.swift @@ -86,7 +86,7 @@ struct AnkiView: View { .sheet(isPresented: self.$deckViewVisible) { DeckSelectView(selection: $decksToDisplay, active: $deckViewVisible) } - .onChange(of: deckViewVisible) { _ in + .onChange(of: deckViewVisible) { refreshFlashcards() } } diff --git a/WordAX/Views/Flashcards/FlashCardView.swift b/WordAX/Views/Flashcards/FlashCardView.swift index b3b3914..537533d 100644 --- a/WordAX/Views/Flashcards/FlashCardView.swift +++ b/WordAX/Views/Flashcards/FlashCardView.swift @@ -14,11 +14,12 @@ struct FlashCardView: View { @Binding var showDescription: Bool @Environment(\.colorScheme) var colorScheme @State var editFlashcard: Bool = false - + @State var showHint: Bool = false var body: some View { let flashcardText = Text(flashcard.name ?? "Unknown") .font(.title) + .textSelection(.enabled) .bold() VStack { // TODO: Figure out if this and create/edit menu could be more similar? @@ -33,7 +34,6 @@ struct FlashCardView: View { .padding(.bottom) } flashcardText - .textSelection(.enabled) Divider() .background(colorScheme == .light ? Color.black : Color.white) .padding(.horizontal) @@ -42,6 +42,21 @@ struct FlashCardView: View { } else { flashcardText } + if flashcard.hint != nil { + if !showDescription { + Button { + showHint.toggle() + } label: { + Text(showHint ? "Hide Hint" : "Show Hint") + .padding() + } + if showHint { + Text((flashcard.hint != nil) ? "Hint: \(flashcard.hint ?? "")" : "") + .padding() + .font(.footnote) + } + } + } } .padding([.horizontal, .top]) .frame(maxWidth: .infinity, maxHeight: .infinity) @@ -63,7 +78,7 @@ struct FlashCardView: View { } #Preview { - @State var showDescription = true + @State var showDescription = false let flashcard = try? DataController.preview.viewContext.fetch(Flashcard.fetchRequest()).first return FlashCardView(flashcard: flashcard!, showDescription: $showDescription) .environment(\.managedObjectContext, DataController.preview.container.viewContext)