You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
expo: use expo-hinge and ArrangementView for foldables when moving to SDK 58 #709
Expo SDK 58 (on npm as next, 58.0.6) ships first-party foldable support:
expo-hinge (expo/expo#50912, Android in #51201): getHinge(), addHingeListener(), isAvailable() and useHinge(). A hinge has an angle in degrees and a status of closed, partiallyOpen, fullyOpen or unknown, and is null on a device without one.
ArrangementView in @expo/ui (SwiftUI): a container that places a primary and a secondary view around the fold, for layout.
onHingeChange modifier for @expo/ui views, with worklet callbacks (#50909, #50910).
Foldable in @ng-native/expo/foldable wraps the community expo-foldables today, and npm's expo-hinge is still a placeholder ("Reserved name. Use expo-foldables."), so nothing can change on SDK 57.
When the workspace moves to SDK 58:
Have Foldable read expo-hinge, keeping expo-foldables as a fallback so an app that has it keeps working. The posture maps directly (partially-open and partiallyOpen, and so on).
Add <arrangement-view> alongside the other @expo/ui components, since Apple's guidance is that layout around the fold goes through the arrangement and reserved-region APIs, and the hinge is for interactions and effects.
Add an (hingeChange) binding for @expo/ui views, matching onHingeChange.
Update examples/foldbook and the foldable docs page.
Activity
erkamyaman commentedon Oct 9, 2026
@ashley-hunter can you assign this to me please? I can't 😂
ashley-hunter commentedon Oct 9, 2026
Done! Thank you, and thanks for all the fixes!