fix index

This commit is contained in:
anlicheng 2025-02-21 21:58:28 +08:00
parent a50a4dc4f0
commit db894b88e5
2 changed files with 14 additions and 2 deletions

View File

@ -15,6 +15,8 @@ struct DateNavView: View {
@Binding var selectGroupId: String @Binding var selectGroupId: String
@Binding var showDateNavPopover: Bool @Binding var showDateNavPopover: Bool
var onSelected: (String) -> Void
var body: some View { var body: some View {
VStack(alignment: .center) { VStack(alignment: .center) {
ForEach(navModel.dateModels) { model in ForEach(navModel.dateModels) { model in
@ -25,7 +27,11 @@ struct DateNavView: View {
if month.disabled { if month.disabled {
DateDisabledItemView(datetime: month.name) DateDisabledItemView(datetime: month.name)
} else { } else {
DateItemView(datetime: month.name, selected: month.id == selectGroupId, showDateNavPopover: $showDateNavPopover) DateItemView(id: month.id,
datetime: month.name,
selected: month.id == selectGroupId,
showDateNavPopover: $showDateNavPopover,
onSelected: onSelected)
} }
} }
} }
@ -45,10 +51,13 @@ struct DateNavView: View {
extension DateNavView { extension DateNavView {
struct DateItemView: View { struct DateItemView: View {
let id: String
let datetime: String let datetime: String
@State var selected: Bool @State var selected: Bool
@Binding var showDateNavPopover: Bool @Binding var showDateNavPopover: Bool
var onSelected: (String) -> Void
var body: some View { var body: some View {
Rectangle() Rectangle()
.frame(width: 80, height: 50) .frame(width: 80, height: 50)
@ -65,6 +74,7 @@ extension DateNavView {
.onTapGesture { .onTapGesture {
self.selected = true self.selected = true
self.showDateNavPopover = false self.showDateNavPopover = false
onSelected(id)
} }
} }
} }

View File

@ -210,7 +210,9 @@ struct IndexView: View {
} }
} }
.popover(isPresented: $showDateNavPopover) { .popover(isPresented: $showDateNavPopover) {
DateNavView(selectGroupId: self.$selectGroupId, showDateNavPopover: $showDateNavPopover) DateNavView(selectGroupId: self.$selectGroupId, showDateNavPopover: $showDateNavPopover) { selectedDate in
print("new selected date: " + selectedDate)
}
} }
} }
.task { .task {