mirror of
				https://github.com/yattee/yattee.git
				synced 2025-10-31 04:31:54 +00:00 
			
		
		
		
	 7e346bf49c
			
		
	
	7e346bf49c
	
	
	
		
			
			Timestamps in comments can now be touched and jump to the corresponding part in the video. Signed-off-by: Toni Förster <toni.foerster@gmail.com>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
| import SwiftUI
 | |
| 
 | |
| struct CommentsView: View {
 | |
|     @State private var repliesID: Comment.ID?
 | |
|     @State private var availableWidth = 0.0
 | |
| 
 | |
|     @ObservedObject private var comments = CommentsModel.shared
 | |
| 
 | |
|     var body: some View {
 | |
|         Group {
 | |
|             if comments.disabled {
 | |
|                 NoCommentsView(text: "Comments are disabled".localized(), systemImage: "xmark.circle.fill")
 | |
|             } else if comments.loaded && comments.all.isEmpty {
 | |
|                 NoCommentsView(text: "No comments".localized(), systemImage: "0.circle.fill")
 | |
|             } else if !comments.loaded {
 | |
|                 PlaceholderProgressView()
 | |
|             } else {
 | |
|                 LazyVStack {
 | |
|                     ForEach(comments.all) { comment in
 | |
|                         CommentView(comment: comment, repliesID: $repliesID, availableWidth: availableWidth)
 | |
|                             .onAppear {
 | |
|                                 comments.loadNextPageIfNeeded(current: comment)
 | |
|                             }
 | |
|                             .borderBottom(height: comment != comments.all.last ? 0.5 : 0, color: Color("ControlsBorderColor"))
 | |
|                     }
 | |
|                 }
 | |
|                 .background(GeometryReader { geometry in
 | |
|                     Color.clear
 | |
|                         .onAppear {
 | |
|                             self.availableWidth = Double(geometry.size.width)
 | |
|                         }
 | |
|                 })
 | |
|             }
 | |
|         }
 | |
|         .padding(.horizontal)
 | |
|     }
 | |
| }
 | |
| 
 | |
| struct CommentsView_Previews: PreviewProvider {
 | |
|     static var previews: some View {
 | |
|         if #available(iOS 15.0, macOS 12.0, tvOS 15.0, *) {
 | |
|             CommentsView()
 | |
|                 .previewInterfaceOrientation(.landscapeRight)
 | |
|                 .injectFixtureEnvironmentObjects()
 | |
|         }
 | |
| 
 | |
|         CommentsView()
 | |
|             .injectFixtureEnvironmentObjects()
 | |
|     }
 | |
| }
 |