Update button size, add time that's added

This commit is contained in:
2024-04-05 19:45:26 +02:00
parent 94772d6b48
commit c0c4afc946
2 changed files with 59 additions and 26 deletions

View File

@@ -9,26 +9,47 @@ import SwiftUI
struct AnkiView: View { struct AnkiView: View {
@EnvironmentObject var model: WordAXModelView @EnvironmentObject var model: WordAXModelView
@State var showDescription = false @State var showDescription = true
var word: WordAX.Word? { var word: WordAX.Word? {
model.getWordToDisplay() model.getWordToDisplay()
} }
var body: some View { var body: some View {
if word != nil { if word != nil {
VStack { GeometryReader { geometry in
WordView(word: word!, showDescription: $showDescription) VStack {
if showDescription { WordView(word: word!, showDescription: $showDescription)
// Text("How did you do?") if showDescription {
// .font(.subheadline) // Text("How did you do?")
// .foregroundStyle(.gray) // .font(.subheadline)
// .foregroundStyle(.gray)
HStack(alignment: .center) { HStack(alignment: .center) {
NextRepetitionButtonView(buttonText: "Novice", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: word!.nextSpacedRepetitionMilestone)), wordId: word!.id, showDescription: $showDescription) NextRepetitionButtonView(
// .padding(.leading) buttonText: "Easy",
NextRepetitionButtonView(buttonText: "Expert", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: word!.nextSpacedRepetitionMilestone), wordId: word!.id, showDescription: $showDescription) nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: WordAX.SpacedRepetitionMilestoneEnum.getNext(milestone: word!.nextSpacedRepetitionMilestone)),
NextRepetitionButtonView(buttonText: "Master", nextMilestone: word!.nextSpacedRepetitionMilestone, wordId: word!.id, showDescription: $showDescription) wordId: word!.id,
// .padding(.trailing) 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]) .padding([.bottom, .trailing, .leading])
}
} }
} }
} else { } else {

View File

@@ -11,20 +11,32 @@ struct NextRepetitionButtonView: View {
let buttonText: String let buttonText: String
let nextMilestone: WordAX.SpacedRepetitionMilestoneEnum? let nextMilestone: WordAX.SpacedRepetitionMilestoneEnum?
let wordId: Int let wordId: Int
let width: CGFloat
let color: Color
let geometry: GeometryProxy
let newText: String = "1h"
// { colorScheme == .light ? .cyan : .darkCyan }
@Binding var showDescription: Bool @Binding var showDescription: Bool
@EnvironmentObject var model: WordAXModelView @EnvironmentObject var model: WordAXModelView
@Environment(\.colorScheme) var colorScheme @Environment(\.colorScheme) var colorScheme
var body: some View { var body: some View {
Button(action: { Button(action: {
model.ankiButtonClicked(wordId: wordId, milestone: nextMilestone) model.ankiButtonClicked(wordId: wordId, milestone: nextMilestone)
self.showDescription = false self.showDescription = false
}) { }) {
Text(buttonText) VStack {
.padding() Text(buttonText)
Text(">" + newText)
.font(.footnote)
.bold()
}
.padding(.vertical, geometry.size.height / 80)
.foregroundColor(colorScheme == .light ? .black : .white) .foregroundColor(colorScheme == .light ? .black : .white)
.background(colorScheme == .light ? .cyan : .darkCyan) .frame(maxWidth: width)
.clipShape(RoundedRectangle(cornerRadius: 50)) }
} .background(color)
.buttonStyle(.plain)
.clipShape(RoundedRectangle(cornerRadius: 10))
} }
} }
@@ -35,8 +47,8 @@ extension ShapeStyle where Self == Color {
} }
} }
#Preview { //#Preview {
@State var showDescription = false // @State var showDescription = false
return NextRepetitionButtonView(buttonText: "Excellent", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.OneDay, wordId: 0, showDescription: $showDescription) // return NextRepetitionButtonView(buttonText: "Excellent", nextMilestone: WordAX.SpacedRepetitionMilestoneEnum.OneDay, wordId: 0, showDescription: $showDescription)
.environmentObject(WordAXModelView()) // .environmentObject(WordAXModelView())
} //}