mirror of
https://github.com/yattee/yattee.git
synced 2025-12-14 03:58:14 +00:00
Refactor fullscreen details layout from VStack to ZStack
Switch from VStack to ZStack layout for better control over detail view positioning in fullscreen mode. Add z-index layering to ensure proper stacking order of player backend and video details.
This commit is contained in:
@@ -268,7 +268,7 @@ struct VideoPlayerView: View {
|
|||||||
.ignoresSafeArea()
|
.ignoresSafeArea()
|
||||||
#else
|
#else
|
||||||
GeometryReader { geometry in
|
GeometryReader { geometry in
|
||||||
VStack(spacing: 0) {
|
ZStack(alignment: .top) {
|
||||||
player.playerBackendView
|
player.playerBackendView
|
||||||
.modifier(
|
.modifier(
|
||||||
VideoPlayerSizeModifier(
|
VideoPlayerSizeModifier(
|
||||||
@@ -305,6 +305,7 @@ struct VideoPlayerView: View {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
.background(Color.black)
|
.background(Color.black)
|
||||||
|
.zIndex(1)
|
||||||
|
|
||||||
if !detailsHiddenInFullScreen {
|
if !detailsHiddenInFullScreen {
|
||||||
VideoDetails(
|
VideoDetails(
|
||||||
@@ -313,6 +314,7 @@ struct VideoPlayerView: View {
|
|||||||
sidebarQueue: $sidebarQueue
|
sidebarQueue: $sidebarQueue
|
||||||
)
|
)
|
||||||
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
|
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
|
||||||
|
.frame(height: geometry.size.height)
|
||||||
#if os(macOS)
|
#if os(macOS)
|
||||||
// TODO: Check whether this is needed on macOS.
|
// TODO: Check whether this is needed on macOS.
|
||||||
.onDisappear {
|
.onDisappear {
|
||||||
@@ -323,8 +325,9 @@ struct VideoPlayerView: View {
|
|||||||
#endif
|
#endif
|
||||||
.id(player.currentVideo?.cacheKey)
|
.id(player.currentVideo?.cacheKey)
|
||||||
.transition(.opacity)
|
.transition(.opacity)
|
||||||
.offset(y: detailViewDragOffset)
|
.offset(y: (fullScreenDetails ? 0 : player.playerSize.height) + detailViewDragOffset)
|
||||||
.gesture(detailsDragGesture)
|
.gesture(detailsDragGesture)
|
||||||
|
.zIndex(2) // Ensure details are on top
|
||||||
} else {
|
} else {
|
||||||
VStack {}
|
VStack {}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user