diff --git a/SelectedRibbonRequest.swift b/SelectedRibbonRequest.swift index ed26a6d..c613c17 100644 --- a/SelectedRibbonRequest.swift +++ b/SelectedRibbonRequest.swift @@ -47,7 +47,7 @@ struct SelectedRibbonRequest: Queryable { var ret2 = try SelectedRibbon.fetchAll(db, sql: "SELECT * FROM selectedRibbon") // [Player] print(ret2) print("FETCH JOIN RIBBON") - var ret = try Ribbon.fetchAll(db, sql: "SELECT ribbon.* FROM selectedRibbon join ribbon on selectedRibbon.ribbonId = ribbon.rowid") // [Player] + var ret = try Ribbon.fetchAll(db, sql: "SELECT ribbon.* FROM selectedRibbon join ribbon on selectedRibbon.ribbonId = ribbon.rowid WHERE selectedRibbon.rowid = 1") // [Player] print(ret) return ret } diff --git a/gloss.xcodeproj/project.xcworkspace/xcuserdata/saint.xcuserdatad/UserInterfaceState.xcuserstate b/gloss.xcodeproj/project.xcworkspace/xcuserdata/saint.xcuserdatad/UserInterfaceState.xcuserstate index e210213..d5ed6d7 100644 Binary files a/gloss.xcodeproj/project.xcworkspace/xcuserdata/saint.xcuserdatad/UserInterfaceState.xcuserstate and b/gloss.xcodeproj/project.xcworkspace/xcuserdata/saint.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/gloss/ContentView.swift b/gloss/ContentView.swift index a486393..df6ca79 100644 --- a/gloss/ContentView.swift +++ b/gloss/ContentView.swift @@ -15,7 +15,6 @@ let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "network // var curBook = "John" extension UserDefaults { - public func optionalInt(forKey defaultName: String) -> Int? { let defaults = self if let value = defaults.value(forKey: defaultName) { @@ -33,27 +32,7 @@ extension UserDefaults { } } -extension UINavigationController { - override open func viewDidLoad() { - super.viewDidLoad() - - let standard = UINavigationBarAppearance() - standard.backgroundColor = .red //When you scroll or you have title (small one) - - let compact = UINavigationBarAppearance() - compact.backgroundColor = .green //compact-height - - let scrollEdge = UINavigationBarAppearance() - scrollEdge.backgroundColor = .blue //When you have large title - - navigationBar.standardAppearance = standard - navigationBar.compactAppearance = compact - navigationBar.scrollEdgeAppearance = scrollEdge - } -} - struct BlueButtonStyle: ButtonStyle { - func makeBody(configuration: Self.Configuration) -> some View { configuration.label .font(.headline) @@ -65,78 +44,12 @@ struct BlueButtonStyle: ButtonStyle { } } -struct PositionObservingView: View { - var coordinateSpace: CoordinateSpace -@Binding var position: CGPoint - @ViewBuilder var content: () -> Content - - var body: some View { - content() - .background(GeometryReader { geometry in - Color.clear.preference( - key: PreferenceKey.self, - value: geometry.frame(in: coordinateSpace).origin -) - }) - .onPreferenceChange(PreferenceKey.self) { position in - self.position = position - // Print(self.position) - } - } -} - - -private extension PositionObservingView { - struct PreferenceKey: SwiftUI.PreferenceKey { - static var defaultValue: CGPoint { .zero } - - static func reduce(value: inout CGPoint, nextValue: () -> CGPoint) { - // No-op - } - } -} - -struct OffsetObservingScrollView: View { - var axes: Axis.Set = [.vertical] - var showsIndicators = true - @Binding var offset: CGPoint - @ViewBuilder var content: () -> Content - - // The name of our coordinate space doesn't have to be - // stable between view updates (it just needs to be - // consistent within this view), so we'll simply use a - // plain UUID for it: - private let coordinateSpaceName = UUID() - - var body: some View { - ScrollView(axes, showsIndicators: showsIndicators) { - PositionObservingView( - coordinateSpace: .named(coordinateSpaceName), - position: Binding( - get: { offset }, - set: { newOffset in - offset = CGPoint( - x: -newOffset.x, - y: -newOffset.y -) - } - ), - content: content - ) - } - .coordinateSpace(name: coordinateSpaceName) - } -} - - struct SwitchButton : View { var ribbon: Ribbon // var selectedRibbon: SelectedRibbon @Binding var book : String @Binding var scrollView : UIScrollView? - @Binding var scrollOffset : CGFloat - @Binding var readOffset: CGPoint @Environment(\.appDatabase) private var appDatabase @@ -146,23 +59,28 @@ struct SwitchButton : View { @State var saveOffset = CGFloat() var body: some View { // ForEach(sr) { selectedRibbon in - Button(String(sr[0].id!) + " " + String(ribbon.scrollOffset), + Button(String(sr[0].id!) + " " + String(ribbon.id!) + " " + String(ribbon.scrollOffset), // Button("meow", action: { Task { var selectedRibbon = sr[0] Print("SELECTED RIBBON", selectedRibbon) - scrollView!.contentOffset.y = CGFloat(2000) + var saveScrollOffset = scrollView!.contentOffset.y - saveOffset = CGFloat(readOffset.y) - Print("selected ribbon", selectedRibbon) - Print("view ribbon", ribbon) + var editedRibbon = selectedRibbon + editedRibbon.scrollOffset = Int(saveScrollOffset) + + _ = try await appDatabase.saveRibbon(&editedRibbon) + _ = Print("editedRibbon", editedRibbon) + _ = Print("ribbon", ribbon) + + Print("ribbon offset saved") if (selectedRibbon.id != ribbon.id!) { Print("switching") book = ribbon.book - scrollOffset = CGFloat(ribbon.scrollOffset) + scrollView!.contentOffset.y = CGFloat(ribbon.scrollOffset) // scrollOffset = CGFloat(1500) var updateSelectRibbon = SelectedRibbon(id: Int64(1), ribbonId: ribbon.id!) Print("Savingg") @@ -174,15 +92,6 @@ struct SwitchButton : View { } } - Print("saveOffset", saveOffset) - var editedRibbon = ribbon - editedRibbon.scrollOffset = Int(saveOffset) - - _ = try await appDatabase.saveRibbon(&editedRibbon) - _ = Print("editedRibbon", editedRibbon) - _ = Print("ribbon", ribbon) - - Print("ribbon offset saved") } } @@ -256,10 +165,7 @@ struct ContentView: View { //ForEach(selectedRibbon) { sr in SwitchButton(ribbon: ribbon, book: $lines.book, - scrollView:$thisScrollView, - // selectedRibbon:selectedRibbon[0], - scrollOffset: $scrollOffset, - readOffset: $readOffset + scrollView:$thisScrollView ) .buttonStyle(BlueButtonStyle()) //} @@ -312,6 +218,7 @@ struct ContentView: View { if (thisScrollView == nil) { thisScrollView = scrollView + scrollView.contentOffset.y = CGFloat(selectedRibbon[0].scrollOffset) } // scrollView.contentOffset.y = scrollOffset