import GRDB import GRDBQuery import Foundation import SwiftUI struct NaviBar: View { @ObservedObject var paneConnector: PaneConnector @Query(RibbonRequest(dir: .prev, groupId: 1)) private var backRibbon: [Ribbon] @Query(RibbonRequest(dir: .next, groupId: 1)) private var nextRibbon: [Ribbon] @Query(SelectedRibbonRequest()) private var selectedRibbon: [Ribbon] @Environment(\.appDatabase) private var appDatabase var body: some View { VStack { HStack { Print("meow navi reloaded back ribbon: \(backRibbon[0])") BackArrow() .frame(width: CGFloat(30), height: CGFloat(30)) .background(Color(red: 0.1, green: 0.1, blue: 0.1)) .foregroundColor(Color(UIColor(red: 0.30, green: 0.30, blue: 0.30, alpha: 0.4))) .onTapGesture { print("back backRibbon: \(backRibbon)") Task { print("back backRibbon: \(backRibbon)") if backRibbon.count == 0 { return } var br = backRibbon[0] //var sr = selectedRibbon[0] do { var sr = try await appDatabase.getSelectedRibbon() print("meow first sr:\(sr)") print("meow first selectedRibbon:\(selectedRibbon[0])") try await updateRibbon(selectedRibbon: selectedRibbon[0], appDatabase: appDatabase, paneConnector: paneConnector) print("meow back from update in main") sr = try await appDatabase.getSelectedRibbon() print("meow second sr:\(sr)") print("meow backribbon br:\(br)") _ = try await appDatabase.undoRibbon(&sr[0]) goToRibbon(selectedRibbon: sr[0], destRibbon: br, appDatabase: appDatabase, paneConnector: paneConnector, loading: false, bump:false) } catch { print("back 2 error") print("Error info: \(error)") } } } ForwardArrow() .frame(width: CGFloat(30), height: CGFloat(30)) .background(Color(red: 0.1, green: 0.1, blue: 0.1)) .foregroundColor(Color(UIColor(red: 0.30, green: 0.30, blue: 0.30, alpha: 0.4))) } .cornerRadius(5) } } }