fix(store): pin all non-image elements during overscroll bounce
Apply offset(y: -stretchAmount) to gradient, buttons, summaryCard, storeLogoBadge, and hard-cut rectangle so only the cover image stretches on pull-down
This commit is contained in:
@@ -11,14 +11,16 @@ extension StoreDetailView {
|
||||
Rectangle()
|
||||
.fill(AppColors.backgroundLight)
|
||||
.frame(height: max(0, topSectionHeight - coverVisibleUntilY))
|
||||
.offset(y: coverVisibleUntilY)
|
||||
.offset(y: coverVisibleUntilY - stretchAmount)
|
||||
|
||||
summaryCard
|
||||
.padding(.horizontal, 16)
|
||||
.padding(.top, cardTopInset)
|
||||
.offset(y: -stretchAmount)
|
||||
|
||||
storeLogoBadge
|
||||
.padding(.top, cardTopInset - (storeLogoSize / 2))
|
||||
.offset(y: -stretchAmount)
|
||||
}
|
||||
.frame(height: topSectionHeight)
|
||||
}
|
||||
@@ -37,6 +39,7 @@ extension StoreDetailView {
|
||||
)
|
||||
.frame(height: topSectionHeight)
|
||||
.ignoresSafeArea(.container, edges: .top)
|
||||
.offset(y: -stretchAmount)
|
||||
.allowsHitTesting(false)
|
||||
|
||||
VStack(spacing: 0) {
|
||||
@@ -66,6 +69,7 @@ extension StoreDetailView {
|
||||
.foregroundStyle(Color.white.opacity(0.92))
|
||||
.padding(.bottom, 14)
|
||||
}
|
||||
.offset(y: -stretchAmount)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user