replace react-nav header hack with scroll edge interaction module

- new expo-scroll-edge-interaction native module (iOS-only) that sets up
  UIScrollEdgeElementContainerInteraction on iOS 26+
- new ScrollEdgeInteractionProvider context and hooks
- Layout.Screen gains `transparentHeader` prop
- Layout.Header.Outer auto-detects transparent mode from context
- List auto-registers scroll view and applies content inset

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Samuel Newman
2026-02-27 18:13:29 +02:00
parent b7283d92bf
commit 9836939728
15 changed files with 373 additions and 88 deletions
@@ -0,0 +1,19 @@
import ExpoModulesCore
public class ExpoScrollEdgeInteractionModule: Module {
public func definition() -> ModuleDefinition {
Name("ExpoScrollEdgeInteraction")
View(ExpoScrollEdgeInteractionView.self) {
Prop("nodeHandle") { (view: ExpoScrollEdgeInteractionView, prop: Int?) in
view.nodeHandle = prop
}
Prop("scrollViewTag") { (view: ExpoScrollEdgeInteractionView, prop: Int?) in
view.scrollViewTag = prop
}
Prop("edge") { (view: ExpoScrollEdgeInteractionView, prop: String?) in
view.edge = prop
}
}
}
}