Skip to content

Version compatibility ​

Every value comes from the package configuration. Implemented means the code exists; tested means it was run on that setup and checked.

Library versions ​

Library versionReact NativeReactiOSAndroidExpo SDKStatus
0.1.x≥ 0.73≥ 18.2≥ 15.0≥ 7.0 (API 24)≥ 51 (dev build)Early release

Requirements ​

MinimumWhere it's defined
React18.2peerDependencies
React Native0.73peerDependencies
iOS15.0react-native-universal-sheet.podspec
Custom snap heights on iOSiOS 16UISheetPresentationController.Detent.custom
Corner radius on iOSiOS 16preferredCornerRadius
AndroidAPI 24 (Android 7.0)android/build.gradle minSdk
Android compile SDK34android/build.gradle
Material Components1.12.0 (bundled)android/build.gradle dependency
Java17android/build.gradle
Swift5.0podspec
ExpoSDK 51optional peerDependencies
react-native-web0.19optional peerDependencies
react-dom18.2optional peerDependencies
TypeScript (for the types)5.0export type * in the entry file

Developed and tested against ​

ToolVersion
React Native0.76.9
React18.3.1
react-native-web0.19.13
TypeScript5.6.3
Jest29.7
Node.js18+ (22 in CI)

Platforms and frameworks ​

SetupImplementedTestedNotes
TypeScript API (manager, stack, validation, variants)✅✅ 83 unit testsRuns in CI
iOS 16+ bottom sheet✅❔ not yet on a deviceCustom detents
iOS 15 bottom sheet✅❔Medium and large detents only
Android bottom sheet✅❔ not yet on a deviceBottomSheetDialog
Native modal / overlay placements⛔ pending—Presented as a bottom sheet for now
React Native old architecture✅❔View managers
New Architecture, Android✅ via interop❔
New Architecture, iOS◐ via legacy interop❔No Fabric component view yet
Expo development build / EAS✅ autolinking + config plugin❔
Expo Go⛔—Native code not included in Expo Go
Expo web✅❔Metro resolves .web.tsx
Vite / webpack with react-native-web✅❔Needs TypeScript in node_modules compiled; see Web
Server rendering (Next.js etc.)✅ renders nothing on the server❔Sheets appear after hydration

✅ yes · ◐ partly · ❔ not tested yet · ⛔ no

Help fill this table: if you run the library on a setup marked ❔, please report the result.

Upgrading ​

The library follows semantic versioning. While the version is 0.x, a minor release (0.1 → 0.2) may contain breaking changes; they are listed in the Changelog.

After every upgrade:

sh
cd ios && pod install

and rebuild the native app.

Released under the MIT License.