This commit is contained in:
anlicheng 2025-02-20 22:12:22 +08:00
parent fb74a686e1
commit d2aeacd8b8
2 changed files with 9 additions and 7 deletions

View File

@ -10,13 +10,13 @@ import SwiftUI
import Observation import Observation
struct DateNavView: View { struct DateNavView: View {
//@AppStorage("selectedDate") var selectedDate: String = "" @AppStorage("selectedDate") var selectedDate: String = ""
@State var navData = DateNavData(dateCells: []) @State var navData = DateNavData(dateCells: [])
@Binding var showDateNavPopover: Bool @Binding var showDateNavPopover: Bool
var body: some View { var body: some View {
let _ = Self._printChanges() //let _ = Self._printChanges()
VStack(alignment: .center) { VStack(alignment: .center) {
ForEach(navData.dateCells, id: \.year) { cell in ForEach(navData.dateCells, id: \.year) { cell in
VStack(alignment: .leading, spacing: 10) { VStack(alignment: .leading, spacing: 10) {
@ -26,7 +26,7 @@ struct DateNavView: View {
if item.disabled { if item.disabled {
DateDisabledItemView(datetime: item.name) DateDisabledItemView(datetime: item.name)
} else { } else {
DateItemView(datetime: item.name, selected: false, showDateNavPopover: $showDateNavPopover) DateItemView(id: item.id, datetime: item.name, selected: false, showDateNavPopover: $showDateNavPopover)
} }
} }
} }
@ -61,6 +61,7 @@ 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
@ -81,6 +82,7 @@ extension DateNavView {
.onTapGesture { .onTapGesture {
self.selected = true self.selected = true
self.showDateNavPopover = false self.showDateNavPopover = false
UserDefaults.standard.set(id, forKey: "navSelectedDate")
} }
} }
} }
@ -128,18 +130,19 @@ final class DateNavData {
@MainActor @MainActor
func loadDateCells() async { func loadDateCells() async {
let models = await getDateModelData() let selectedDate = UserDefaults.standard.value(forKey: "navSelectedDate") as? String ?? ""
let models = await getDateModelData()
var cells: [DateCell] = [] var cells: [DateCell] = []
for model in models { for model in models {
let items = model.months.map { month in let items = model.months.map { month in
DateCell.Item(id: "\(model.year)-\(month.name)", name: month.name, disabled: month.disabled, selected: false) let id = "\(model.year)-\(month.name)"
return DateCell.Item(id: id, name: month.name, disabled: month.disabled, selected: id == selectedDate ? true : false)
} }
cells.append(DateCell(year: model.year, items: items)) cells.append(DateCell(year: model.year, items: items))
} }
self.dateCells = cells self.dateCells = cells
print(self.dateCells)
} }
private func getDateModelData() async -> [DateModel] { private func getDateModelData() async -> [DateModel] {

View File

@ -94,7 +94,6 @@ struct IndexView: View {
let screenBounds = UIScreen.main.bounds let screenBounds = UIScreen.main.bounds
if screenBounds.height - frame.minY > 50 && !isLoading { if screenBounds.height - frame.minY > 50 && !isLoading {
print("call me here")
Task { Task {
await self.loadMoreUpdateDramas() await self.loadMoreUpdateDramas()
} }