builds but not working really
this is with the refactor thing and yeah need to fix more stuff but it builds at leastundo
							parent
							
								
									4615dbd433
								
							
						
					
					
						commit
						c934dd5c21
					
				| 
						 | 
					@ -293,98 +293,9 @@ struct ContentView: View {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                VStack {
 | 
					                VStack {
 | 
				
			||||||
                // Top pane
 | 
					                // Top pane
 | 
				
			||||||
                    ScrollViewReader { proxy in
 | 
					                    Pane(paneConnector: paneConnector,
 | 
				
			||||||
                        VisibilityTrackingScrollView(action: handleVisibilityChanged) {
 | 
					                         segs: segs,
 | 
				
			||||||
                            LazyVStack {
 | 
					                         selectedRibbon: selectedRibbon)
 | 
				
			||||||
                                ForEach(segs) { seg in
 | 
					 | 
				
			||||||
                                    SegRow(seg: seg,
 | 
					 | 
				
			||||||
                                           ribbonId: selectedRibbon[0].id!)
 | 
					 | 
				
			||||||
                                        .id("\(seg.id)")
 | 
					 | 
				
			||||||
                                        .offset(x: -dragOffset)
 | 
					 | 
				
			||||||
                                        .padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
 | 
					 | 
				
			||||||
                                        .trackVisibility(id: "\(seg.id)")
 | 
					 | 
				
			||||||
                                }
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                            .background(Color(red: 0.18, green: 0.18, blue: 0.18))
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        .onAppear {
 | 
					 | 
				
			||||||
                            goToRibbon(selectedRibbon: selectedRibbon[0],
 | 
					 | 
				
			||||||
                                       destRibbon: selectedRibbon[0],
 | 
					 | 
				
			||||||
                                       appDatabase: appDatabase,
 | 
					 | 
				
			||||||
                                       paneConnector: $paneConnector,
 | 
					 | 
				
			||||||
                                       loading: true)
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                        .onChange(of: paneConnector.refresh) { _ in
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            Task {
 | 
					 | 
				
			||||||
                                DispatchQueue.main.async {
 | 
					 | 
				
			||||||
                                    let gTracker = paneConnector.visibilityTracker!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                    Print("scroll Id target: \(paneConnector.scrollId)")
 | 
					 | 
				
			||||||
                                    proxy.scrollTo(paneConnector.scrollId, anchor: .top)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                    DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
 | 
					 | 
				
			||||||
                                        Print(" scroll id target", paneConnector.scrollId)
 | 
					 | 
				
			||||||
                                        Print(" current id ", paneConnector.currentId)
 | 
					 | 
				
			||||||
                                        Print(gTracker.sortedViewIDs)
 | 
					 | 
				
			||||||
                                        if paneConnector.currentId != paneConnector.scrollId {
 | 
					 | 
				
			||||||
                                            Print("NO MATCH")
 | 
					 | 
				
			||||||
                                        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                        Print(" current offset ", gTracker.visibleViews[paneConnector.scrollId])
 | 
					 | 
				
			||||||
                                        var curOffset = gTracker.visibleViews[paneConnector.scrollId]
 | 
					 | 
				
			||||||
                                        Print(" stats", gTracker.visibleViews)
 | 
					 | 
				
			||||||
                                        if curOffset != nil {
 | 
					 | 
				
			||||||
                                            paneConnector.setScrollOffset = CGFloat(Int(paneConnector.scrollOffset) - Int(curOffset!))
 | 
					 | 
				
			||||||
                                            // setScrollOffset = CGFloat(Int(paneConnector.scrollOffset) - Int(curOffset!))
 | 
					 | 
				
			||||||
                                            // setScrollOffset = CGFloat(Int(paneConnector.scrollOffset) - Int(curOffset!))
 | 
					 | 
				
			||||||
                                            Print("applying scroll offset \(paneConnector.setScrollOffset)")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                            // paneConnector = paneConnector.copy() as! PaneConnector
 | 
					 | 
				
			||||||
                                            self.refresh.toggle()
 | 
					 | 
				
			||||||
                                        } else {
 | 
					 | 
				
			||||||
                                            var adjust = (Int(paneConnector.scrollId)! - Int(paneConnector.currentId)!) * 200
 | 
					 | 
				
			||||||
                                            Print("adjusting \(adjust)")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                            paneConnector.setScrollOffset = CGFloat(adjust)
 | 
					 | 
				
			||||||
                                            refresh.toggle()
 | 
					 | 
				
			||||||
                                        }
 | 
					 | 
				
			||||||
                                    }
 | 
					 | 
				
			||||||
                                }
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                        .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { scrollView in
 | 
					 | 
				
			||||||
                            Print("introspect")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            // Weird hack for reactivity
 | 
					 | 
				
			||||||
                            if self.refresh {
 | 
					 | 
				
			||||||
                                let reactive = self.refresh
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            // if self.paneConnector != nil {
 | 
					 | 
				
			||||||
                            //     let reactive = self.paneConnector
 | 
					 | 
				
			||||||
                            // }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            if paneConnector.setScrollOffset != nil {
 | 
					 | 
				
			||||||
                                DispatchQueue.main.async {
 | 
					 | 
				
			||||||
                                    scrollView.contentOffset.y = scrollView.contentOffset.y + paneConnector.setScrollOffset!
 | 
					 | 
				
			||||||
                                    paneConnector.setScrollOffset = nil
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                    withAnimation(.easeIn(duration: 0.2)) {
 | 
					 | 
				
			||||||
                                        paneConnector.showOverlay = false
 | 
					 | 
				
			||||||
                                        self.refresh.toggle()
 | 
					 | 
				
			||||||
                                    }
 | 
					 | 
				
			||||||
                                }
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            Print("end introspect")
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                        .listStyle(PlainListStyle())
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    .zIndex(1)
 | 
					 | 
				
			||||||
                    .background(Color(red: 0.2, green: 0.2, blue: 0.2))
 | 
					 | 
				
			||||||
                    .frame(width: geometry.size.width - 50, height: geometry.size.height / 2 - vertSep)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    //////
 | 
					                    //////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -475,21 +386,21 @@ struct ContentView: View {
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if self.paneConnector.showOverlay {
 | 
					                // if self.paneConnector.showOverlay {
 | 
				
			||||||
                    Rectangle()
 | 
					                //     Rectangle()
 | 
				
			||||||
                        .frame(width: geometry.size.width - 50, height: geometry.size.height + 200)
 | 
					                //         .frame(width: geometry.size.width - 50, height: geometry.size.height + 200)
 | 
				
			||||||
                        .background(.ultraThinMaterial)
 | 
					                //         .background(.ultraThinMaterial)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        // .blur(radius: 0.8)
 | 
					                //         // .blur(radius: 0.8)
 | 
				
			||||||
                        .offset(x: 30, y: -100)
 | 
					                //         .offset(x: 30, y: -100)
 | 
				
			||||||
                        .opacity(0.98)
 | 
					                //         .opacity(0.98)
 | 
				
			||||||
                        .transition(.opacity)
 | 
					                //         .transition(.opacity)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        // .frame(width: geometry.size.width - 50)
 | 
					                //         // .frame(width: geometry.size.width - 50)
 | 
				
			||||||
                        .offset(x: pulledOut.width)
 | 
					                //         .offset(x: pulledOut.width)
 | 
				
			||||||
                        .offset(x: viewState.width, y: viewState.height)
 | 
					                //         .offset(x: viewState.width, y: viewState.height)
 | 
				
			||||||
                        .zIndex(2)
 | 
					                //         .zIndex(2)
 | 
				
			||||||
                }
 | 
					                // }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue