mirror of
				https://github.com/yattee/yattee.git
				synced 2025-10-25 16:58:14 +00:00 
			
		
		
		
	jump to current chapter in horizontal view
This commit is contained in:
		| @@ -12,7 +12,10 @@ import SwiftUI | ||||
|         var showThumbnail: Bool | ||||
|  | ||||
|         var isCurrentChapter: Bool { | ||||
|             player.currentChapterIndex == chapterIndex | ||||
|             if let currentChapterIndex = player.currentChapterIndex { | ||||
|                 return currentChapterIndex == chapterIndex | ||||
|             } | ||||
|             return false | ||||
|         } | ||||
|  | ||||
|         var body: some View { | ||||
|   | ||||
| @@ -27,7 +27,22 @@ struct ChaptersView: View { | ||||
|                     .listStyle(.plain) | ||||
|                 #else | ||||
|                     ScrollView(.horizontal) { | ||||
|                         LazyHStack(spacing: 20) { chapterViews(for: chapters[...]) }.padding(.horizontal, 15) | ||||
|                         ScrollViewReader { scrollViewProxy in | ||||
|                             LazyHStack(spacing: 20) { | ||||
|                                 chapterViews(for: chapters[...], scrollViewProxy: scrollViewProxy) | ||||
|                             } | ||||
|                             .padding(.horizontal, 15) | ||||
|                             .onAppear { | ||||
|                                 if let currentChapterIndex = player.currentChapterIndex { | ||||
|                                     scrollViewProxy.scrollTo(currentChapterIndex, anchor: .center) | ||||
|                                 } | ||||
|                             } | ||||
|                             .onChange(of: player.currentChapterIndex) { currentChapterIndex in | ||||
|                                 if let index = currentChapterIndex { | ||||
|                                     scrollViewProxy.scrollTo(index, anchor: .center) | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 #endif | ||||
|             } else if expand { | ||||
| @@ -65,10 +80,11 @@ struct ChaptersView: View { | ||||
|     } | ||||
|  | ||||
|     #if !os(tvOS) | ||||
|         private func chapterViews(for chaptersToShow: ArraySlice<Chapter>, opacity: Double = 1.0, clickable: Bool = true) -> some View { | ||||
|         private func chapterViews(for chaptersToShow: ArraySlice<Chapter>, opacity: Double = 1.0, clickable: Bool = true, scrollViewProxy: ScrollViewProxy? = nil) -> some View { | ||||
|             ForEach(Array(chaptersToShow.indices), id: \.self) { index in | ||||
|                 let chapter = chaptersToShow[index] | ||||
|                 ChapterView(chapter: chapter, chapterIndex: index, showThumbnail: showThumbnails) | ||||
|                     .id(index) | ||||
|                     .opacity(index == 0 ? 1.0 : opacity) | ||||
|                     .allowsHitTesting(clickable) | ||||
|             } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Toni Förster
					Toni Förster