From c0c4afc94632eb3dc7017d59fc60a6a62ba977a7 Mon Sep 17 00:00:00 2001 From: oliverhnat Date: Fri, 5 Apr 2024 19:45:26 +0200 Subject: [PATCH] Update button size, add time that's added --- WordAX/AnkiView.swift | 45 ++++++++++++++++++++------- WordAX/NextRepetitionButtonView.swift | 40 +++++++++++++++--------- 2 files changed, 59 insertions(+), 26 deletions(-) diff --git a/WordAX/AnkiView.swift b/WordAX/AnkiView.swift index 43baf20..6eb269a 100644 --- a/WordAX/AnkiView.swift +++ b/WordAX/AnkiView.swift @@ -9,26 +9,47 @@ import SwiftUI struct AnkiView: View { @EnvironmentObject var model: WordAXModelView - @State var showDescription = false + @State var showDescription = true var word: WordAX.Word? { model.getWordToDisplay() } var body: some View { if word != nil { - VStack { - WordView(word: word!, showDescription: $showDescription) - if showDescription { -// Text("How did you do?") -// .font(.subheadline) -// .foregroundStyle(.gray) + GeometryReader { geometry in + VStack { + WordView(word: word!, showDescription: $showDescription) + if showDescription { + // Text("How did you do?") + // .font(.subheadline) + // .foregroundStyle(.gray) HStack(alignment: .center) { - NextRepetitionButtonView(buttonText: "Novice", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: word!.nextSpacedRepetitionMilestone)), wordId: word!.id, showDescription: $showDescription) - // .padding(.leading) - NextRepetitionButtonView(buttonText: "Expert", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: word!.nextSpacedRepetitionMilestone), wordId: word!.id, showDescription: $showDescription) - NextRepetitionButtonView(buttonText: "Master", nextMilestone: word!.nextSpacedRepetitionMilestone, wordId: word!.id, showDescription: $showDescription) - // .padding(.trailing) + NextRepetitionButtonView( + buttonText: "Easy", + nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: word!.nextSpacedRepetitionMilestone)), + wordId: word!.id, + width: geometry.size.width, + color: .green, + geometry: geometry, + showDescription: $showDescription) + NextRepetitionButtonView( + buttonText: "Normal", + nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: word!.nextSpacedRepetitionMilestone), + wordId: word!.id, + width:geometry.size.width, + color: .orange, + geometry: geometry, + showDescription: $showDescription) + NextRepetitionButtonView( + buttonText: "Hard", + nextMilestone: word!.nextSpacedRepetitionMilestone, + wordId: word!.id, + width: geometry.size.width, + color: .red, + geometry: geometry, + showDescription: $showDescription) } .padding([.bottom, .trailing, .leading]) + } } } } else { diff --git a/WordAX/NextRepetitionButtonView.swift b/WordAX/NextRepetitionButtonView.swift index 05f4c5b..54b8878 100644 --- a/WordAX/NextRepetitionButtonView.swift +++ b/WordAX/NextRepetitionButtonView.swift @@ -11,20 +11,32 @@ struct NextRepetitionButtonView: View { let buttonText: String let nextMilestone: WordAX.SpacedRepetitionMilestoneEnum? let wordId: Int + let width: CGFloat + let color: Color + let geometry: GeometryProxy + let newText: String = "1h" +// { colorScheme == .light ? .cyan : .darkCyan } @Binding var showDescription: Bool @EnvironmentObject var model: WordAXModelView @Environment(\.colorScheme) var colorScheme var body: some View { - Button(action: { - model.ankiButtonClicked(wordId: wordId, milestone: nextMilestone) - self.showDescription = false - }) { - Text(buttonText) - .padding() + Button(action: { + model.ankiButtonClicked(wordId: wordId, milestone: nextMilestone) + self.showDescription = false + }) { + VStack { + Text(buttonText) + Text(">" + newText) + .font(.footnote) + .bold() + } + .padding(.vertical, geometry.size.height / 80) .foregroundColor(colorScheme == .light ? .black : .white) - .background(colorScheme == .light ? .cyan : .darkCyan) - .clipShape(RoundedRectangle(cornerRadius: 50)) - } + .frame(maxWidth: width) + } + .background(color) + .buttonStyle(.plain) + .clipShape(RoundedRectangle(cornerRadius: 10)) } } @@ -35,8 +47,8 @@ extension ShapeStyle where Self == Color { } } -#Preview { - @State var showDescription = false - return NextRepetitionButtonView(buttonText: "Excellent", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.OneDay, wordId: 0, showDescription: $showDescription) - .environmentObject(WordAXModelView()) -} +//#Preview { +// @State var showDescription = false +// return NextRepetitionButtonView(buttonText: "Excellent", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.OneDay, wordId: 0, showDescription: $showDescription) +// .environmentObject(WordAXModelView()) +//}