@lodev09/react-native-true-sheet 4.0.0-beta.0 → 4.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +42 -31
- package/RNTrueSheet.podspec +10 -2
- package/android/build.gradle +2 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +174 -49
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerViewManager.kt +7 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +371 -18
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +14 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +156 -21
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterViewManager.kt +14 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetHeaderView.kt +38 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetHeaderViewManager.kt +28 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetModule.kt +84 -24
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +5 -4
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPeekView.kt +72 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPeekViewManager.kt +33 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetStateUpdater.kt +45 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +526 -231
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +1224 -603
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +136 -29
- package/android/src/main/java/com/lodev09/truesheet/core/RNScreensEventObserver.kt +63 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetBehavior.kt +36 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +255 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +303 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +277 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDimView.kt +162 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetGrabberView.kt +180 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetKeyboardObserver.kt +207 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetStackManager.kt +220 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetDragEvents.kt +71 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetFocusEvents.kt +65 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetLifecycleEvents.kt +112 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetStateEvents.kt +56 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/KeyboardUtils.kt +84 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/ScreenUtils.kt +93 -67
- package/android/src/main/java/com/lodev09/truesheet/utils/TouchEventDeduper.kt +31 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +30 -0
- package/android/src/main/jni/CMakeLists.txt +63 -0
- package/android/src/main/jni/TrueSheetSpec.h +19 -0
- package/android/src/main/jni/TrueSheetStateUpdater.cpp +96 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +24 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +43 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +28 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +11 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +37 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewComponentDescriptor.h +24 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +56 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.h +28 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.cpp +11 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.h +41 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.cpp +18 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.h +16 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewComponentDescriptor.h +28 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +61 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h +45 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.cpp +23 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.h +52 -0
- package/ios/TrueSheetContainerView.h +81 -6
- package/ios/TrueSheetContainerView.mm +275 -21
- package/ios/TrueSheetContentView.h +38 -1
- package/ios/TrueSheetContentView.mm +413 -43
- package/ios/TrueSheetFooterView.h +27 -2
- package/ios/TrueSheetFooterView.mm +141 -35
- package/ios/{events/OnDidDismissEvent.h → TrueSheetHeaderView.h} +10 -7
- package/ios/TrueSheetHeaderView.mm +64 -0
- package/ios/TrueSheetModule.mm +92 -5
- package/ios/TrueSheetPeekView.h +32 -0
- package/ios/TrueSheetPeekView.mm +99 -0
- package/ios/TrueSheetView.h +7 -15
- package/ios/TrueSheetView.mm +633 -215
- package/ios/TrueSheetViewController.h +84 -16
- package/ios/TrueSheetViewController.mm +1133 -333
- package/ios/core/RNScreensEventObserver.h +46 -0
- package/ios/core/RNScreensEventObserver.mm +280 -0
- package/ios/core/TrueSheetBlurView.h +27 -0
- package/ios/core/TrueSheetBlurView.mm +82 -0
- package/ios/core/TrueSheetDetentCalculator.h +107 -0
- package/ios/core/TrueSheetDetentCalculator.mm +197 -0
- package/ios/core/TrueSheetGrabberView.h +72 -0
- package/ios/core/TrueSheetGrabberView.mm +178 -0
- package/ios/core/TrueSheetKeyboardObserver.h +39 -0
- package/ios/core/TrueSheetKeyboardObserver.mm +112 -0
- package/ios/events/TrueSheetDragEvents.h +39 -0
- package/ios/events/TrueSheetDragEvents.mm +62 -0
- package/ios/events/{OnPositionChangeEvent.h → TrueSheetFocusEvents.h} +8 -5
- package/ios/events/TrueSheetFocusEvents.mm +49 -0
- package/ios/events/TrueSheetLifecycleEvents.h +40 -0
- package/ios/events/TrueSheetLifecycleEvents.mm +71 -0
- package/ios/events/TrueSheetStateEvents.h +35 -0
- package/ios/events/TrueSheetStateEvents.mm +49 -0
- package/ios/tvos/TrueSheetStubs.mm +154 -0
- package/ios/{events/OnMountEvent.h → utils/BlurUtil.h} +5 -7
- package/ios/utils/BlurUtil.mm +69 -0
- package/ios/utils/GestureUtil.h +7 -0
- package/ios/utils/GestureUtil.mm +12 -0
- package/ios/utils/PlatformUtil.h +15 -0
- package/ios/utils/UIView+FirstResponder.h +15 -0
- package/ios/utils/UIView+FirstResponder.mm +26 -0
- package/ios/{events/OnWillDismissEvent.h → utils/UIView+ScrollEdgeInteraction.h} +6 -7
- package/ios/utils/UIView+ScrollEdgeInteraction.mm +62 -0
- package/ios/utils/WindowUtil.mm +17 -1
- package/lib/module/TrueSheet.js +230 -64
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +1203 -0
- package/lib/module/TrueSheet.web.js.map +1 -0
- package/lib/module/TrueSheetPeek.js +15 -0
- package/lib/module/TrueSheetPeek.js.map +1 -0
- package/lib/module/TrueSheetPeek.web.js +55 -0
- package/lib/module/TrueSheetPeek.web.js.map +1 -0
- package/lib/module/TrueSheetProvider.js +28 -0
- package/lib/module/TrueSheetProvider.js.map +1 -0
- package/lib/module/TrueSheetProvider.web.js +157 -0
- package/lib/module/TrueSheetProvider.web.js.map +1 -0
- package/lib/module/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
- package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
- package/lib/module/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
- package/lib/module/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
- package/lib/module/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
- package/lib/module/fabric/TrueSheetViewNativeComponent.ts +105 -18
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/mocks/index.js +93 -0
- package/lib/module/mocks/index.js.map +1 -0
- package/lib/module/mocks/navigation.js +95 -0
- package/lib/module/mocks/navigation.js.map +1 -0
- package/lib/module/mocks/navigationExpoRouter.js +21 -0
- package/lib/module/mocks/navigationExpoRouter.js.map +1 -0
- package/lib/module/mocks/reanimated.js +91 -0
- package/lib/module/mocks/reanimated.js.map +1 -0
- package/lib/module/navigation/TrueSheetNavigatorContent.js +73 -0
- package/lib/module/navigation/TrueSheetNavigatorContent.js.map +1 -0
- package/lib/module/navigation/actions.js +50 -0
- package/lib/module/navigation/actions.js.map +1 -0
- package/lib/module/navigation/createTrueSheetRouter.js +166 -0
- package/lib/module/navigation/createTrueSheetRouter.js.map +1 -0
- package/lib/module/navigation/expo-router/index.js +48 -0
- package/lib/module/navigation/expo-router/index.js.map +1 -0
- package/lib/module/navigation/index.js +47 -0
- package/lib/module/navigation/index.js.map +1 -0
- package/lib/module/navigation/navigator.js +10 -0
- package/lib/module/navigation/navigator.js.map +1 -0
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +56 -0
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -0
- package/lib/module/navigation/screen/TrueSheetScreen.js +49 -0
- package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -0
- package/lib/module/navigation/screen/index.js +5 -0
- package/lib/module/navigation/screen/index.js.map +1 -0
- package/lib/module/navigation/screen/types.js +4 -0
- package/lib/module/navigation/screen/types.js.map +1 -0
- package/lib/module/navigation/screen/useSheetScreenState.js +68 -0
- package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -0
- package/lib/module/navigation/types.js +4 -0
- package/lib/module/navigation/types.js.map +1 -0
- package/lib/module/navigation/useTrueSheetNavigation.js +24 -0
- package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -0
- package/lib/module/reanimated/ReanimatedTrueSheet.js +15 -9
- package/lib/module/reanimated/ReanimatedTrueSheet.js.map +1 -1
- package/lib/module/reanimated/ReanimatedTrueSheet.web.js +81 -0
- package/lib/module/reanimated/ReanimatedTrueSheet.web.js.map +1 -0
- package/lib/module/reanimated/ReanimatedTrueSheetProvider.js +4 -2
- package/lib/module/reanimated/ReanimatedTrueSheetProvider.js.map +1 -1
- package/lib/module/reanimated/index.js +2 -2
- package/lib/module/reanimated/index.js.map +1 -1
- package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js +20 -0
- package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js.map +1 -0
- package/lib/module/specs/NativeTrueSheetModule.js.map +1 -1
- package/lib/module/web/constants.js +16 -0
- package/lib/module/web/constants.js.map +1 -0
- package/lib/module/web/dom.js +10 -0
- package/lib/module/web/dom.js.map +1 -0
- package/lib/module/web/vaul/README.md +9 -0
- package/lib/module/web/vaul/browser.js +30 -0
- package/lib/module/web/vaul/browser.js.map +1 -0
- package/lib/module/web/vaul/constants.js +15 -0
- package/lib/module/web/vaul/constants.js.map +1 -0
- package/lib/module/web/vaul/context.js +59 -0
- package/lib/module/web/vaul/context.js.map +1 -0
- package/lib/module/web/vaul/helpers.js +99 -0
- package/lib/module/web/vaul/helpers.js.map +1 -0
- package/lib/module/web/vaul/index.js +1309 -0
- package/lib/module/web/vaul/index.js.map +1 -0
- package/lib/module/web/vaul/style.css +287 -0
- package/lib/module/web/vaul/style.css.d.js +2 -0
- package/lib/module/web/vaul/style.css.d.js.map +1 -0
- package/lib/module/web/vaul/types.js +2 -0
- package/lib/module/web/vaul/types.js.map +1 -0
- package/lib/module/web/vaul/use-composed-refs.js +34 -0
- package/lib/module/web/vaul/use-composed-refs.js.map +1 -0
- package/lib/module/web/vaul/use-controllable-state.js +54 -0
- package/lib/module/web/vaul/use-controllable-state.js.map +1 -0
- package/lib/module/web/vaul/use-position-fixed.js +123 -0
- package/lib/module/web/vaul/use-position-fixed.js.map +1 -0
- package/lib/module/web/vaul/use-prevent-scroll.js +258 -0
- package/lib/module/web/vaul/use-prevent-scroll.js.map +1 -0
- package/lib/module/web/vaul/use-scale-background.js +57 -0
- package/lib/module/web/vaul/use-scale-background.js.map +1 -0
- package/lib/module/web/vaul/use-snap-points.js +305 -0
- package/lib/module/web/vaul/use-snap-points.js.map +1 -0
- package/lib/typescript/src/TrueSheet.d.ts +51 -14
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.types.d.ts +463 -54
- package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts +5 -0
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetPeek.d.ts +9 -0
- package/lib/typescript/src/TrueSheetPeek.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetPeek.web.d.ts +28 -0
- package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetProvider.d.ts +18 -0
- package/lib/typescript/src/TrueSheetProvider.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetProvider.web.d.ts +27 -0
- package/lib/typescript/src/TrueSheetProvider.web.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetContainerViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetContentViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts +2 -0
- package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts +6 -0
- package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts +6 -0
- package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +67 -16
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mocks/index.d.ts +43 -0
- package/lib/typescript/src/mocks/index.d.ts.map +1 -0
- package/lib/typescript/src/mocks/navigation.d.ts +70 -0
- package/lib/typescript/src/mocks/navigation.d.ts.map +1 -0
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +22 -0
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -0
- package/lib/typescript/src/mocks/reanimated.d.ts +48 -0
- package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -0
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts +5 -0
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts.map +1 -0
- package/lib/typescript/src/navigation/actions.d.ts +71 -0
- package/lib/typescript/src/navigation/actions.d.ts.map +1 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +14 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts +37 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/index.d.ts +46 -0
- package/lib/typescript/src/navigation/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/navigator.d.ts +7 -0
- package/lib/typescript/src/navigation/navigator.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +3 -0
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +3 -0
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/index.d.ts +4 -0
- package/lib/typescript/src/navigation/screen/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/types.d.ts +14 -0
- package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +33 -0
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -0
- package/lib/typescript/src/navigation/types.d.ts +177 -0
- package/lib/typescript/src/navigation/types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +23 -0
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -0
- package/lib/typescript/src/reanimated/ReanimatedTrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts +41 -0
- package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts.map +1 -0
- package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts +8 -2
- package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts +15 -0
- package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts +25 -3
- package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts.map +1 -1
- package/lib/typescript/src/web/constants.d.ts +14 -0
- package/lib/typescript/src/web/constants.d.ts.map +1 -0
- package/lib/typescript/src/web/dom.d.ts +7 -0
- package/lib/typescript/src/web/dom.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/browser.d.ts +8 -0
- package/lib/typescript/src/web/vaul/browser.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/constants.d.ts +13 -0
- package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/context.d.ts +53 -0
- package/lib/typescript/src/web/vaul/context.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/helpers.d.ts +17 -0
- package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/index.d.ts +228 -0
- package/lib/typescript/src/web/vaul/index.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/types.d.ts +7 -0
- package/lib/typescript/src/web/vaul/types.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-composed-refs.d.ts +14 -0
- package/lib/typescript/src/web/vaul/use-composed-refs.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-controllable-state.d.ts +9 -0
- package/lib/typescript/src/web/vaul/use-controllable-state.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-position-fixed.d.ts +19 -0
- package/lib/typescript/src/web/vaul/use-position-fixed.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts +18 -0
- package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-scale-background.d.ts +2 -0
- package/lib/typescript/src/web/vaul/use-scale-background.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-snap-points.d.ts +38 -0
- package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -0
- package/package.json +95 -36
- package/react-native.config.js +9 -2
- package/src/TrueSheet.tsx +281 -62
- package/src/TrueSheet.types.ts +525 -71
- package/src/TrueSheet.web.tsx +1362 -0
- package/src/TrueSheetPeek.tsx +11 -0
- package/src/TrueSheetPeek.web.tsx +64 -0
- package/src/TrueSheetProvider.tsx +33 -0
- package/src/TrueSheetProvider.web.tsx +220 -0
- package/src/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
- package/src/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
- package/src/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
- package/src/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
- package/src/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
- package/src/fabric/TrueSheetViewNativeComponent.ts +105 -18
- package/src/index.ts +2 -2
- package/src/mocks/index.ts +89 -0
- package/src/mocks/navigation.ts +79 -0
- package/src/mocks/navigationExpoRouter.ts +40 -0
- package/src/mocks/reanimated.ts +100 -0
- package/src/navigation/TrueSheetNavigatorContent.tsx +106 -0
- package/src/navigation/actions.ts +78 -0
- package/src/navigation/createTrueSheetRouter.ts +222 -0
- package/src/navigation/expo-router/index.ts +89 -0
- package/src/navigation/index.ts +81 -0
- package/src/navigation/navigator.ts +18 -0
- package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +61 -0
- package/src/navigation/screen/TrueSheetScreen.tsx +54 -0
- package/src/navigation/screen/index.ts +3 -0
- package/src/navigation/screen/types.ts +19 -0
- package/src/navigation/screen/useSheetScreenState.ts +100 -0
- package/src/navigation/types.ts +251 -0
- package/src/navigation/useTrueSheetNavigation.ts +26 -0
- package/src/reanimated/ReanimatedTrueSheet.tsx +12 -7
- package/src/reanimated/ReanimatedTrueSheet.web.tsx +75 -0
- package/src/reanimated/ReanimatedTrueSheetProvider.tsx +12 -8
- package/src/reanimated/useReanimatedPositionChangeHandler.web.ts +31 -0
- package/src/specs/NativeTrueSheetModule.ts +28 -3
- package/src/web/constants.ts +13 -0
- package/src/web/dom.ts +9 -0
- package/src/web/vaul/README.md +9 -0
- package/src/web/vaul/browser.ts +38 -0
- package/src/web/vaul/constants.ts +20 -0
- package/src/web/vaul/context.ts +101 -0
- package/src/web/vaul/helpers.ts +131 -0
- package/src/web/vaul/index.tsx +1740 -0
- package/src/web/vaul/style.css +287 -0
- package/src/web/vaul/style.css.d.ts +1 -0
- package/src/web/vaul/types.ts +7 -0
- package/src/web/vaul/use-composed-refs.ts +35 -0
- package/src/web/vaul/use-controllable-state.ts +66 -0
- package/src/web/vaul/use-position-fixed.ts +147 -0
- package/src/web/vaul/use-prevent-scroll.ts +309 -0
- package/src/web/vaul/use-scale-background.ts +64 -0
- package/src/web/vaul/use-snap-points.ts +455 -0
- package/android/src/main/java/com/lodev09/truesheet/events/DetentChangeEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DidDismissEvent.kt +0 -20
- package/android/src/main/java/com/lodev09/truesheet/events/DidPresentEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DragBeginEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DragChangeEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DragEndEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/MountEvent.kt +0 -20
- package/android/src/main/java/com/lodev09/truesheet/events/PositionChangeEvent.kt +0 -32
- package/android/src/main/java/com/lodev09/truesheet/events/SizeChangeEvent.kt +0 -27
- package/android/src/main/java/com/lodev09/truesheet/events/WillDismissEvent.kt +0 -20
- package/android/src/main/java/com/lodev09/truesheet/events/WillPresentEvent.kt +0 -26
- package/android/src/main/res/values/styles.xml +0 -8
- package/ios/events/OnDetentChangeEvent.h +0 -28
- package/ios/events/OnDetentChangeEvent.mm +0 -30
- package/ios/events/OnDidDismissEvent.mm +0 -25
- package/ios/events/OnDidPresentEvent.h +0 -28
- package/ios/events/OnDidPresentEvent.mm +0 -30
- package/ios/events/OnDragBeginEvent.h +0 -28
- package/ios/events/OnDragBeginEvent.mm +0 -30
- package/ios/events/OnDragChangeEvent.h +0 -28
- package/ios/events/OnDragChangeEvent.mm +0 -30
- package/ios/events/OnDragEndEvent.h +0 -28
- package/ios/events/OnDragEndEvent.mm +0 -30
- package/ios/events/OnMountEvent.mm +0 -25
- package/ios/events/OnPositionChangeEvent.mm +0 -32
- package/ios/events/OnSizeChangeEvent.h +0 -28
- package/ios/events/OnSizeChangeEvent.mm +0 -30
- package/ios/events/OnWillDismissEvent.mm +0 -25
- package/ios/events/OnWillPresentEvent.h +0 -28
- package/ios/events/OnWillPresentEvent.mm +0 -30
- package/ios/utils/LayoutUtil.h +0 -44
- package/ios/utils/LayoutUtil.mm +0 -50
- package/lib/module/TrueSheetGrabber.js +0 -51
- package/lib/module/TrueSheetGrabber.js.map +0 -1
- package/lib/typescript/src/TrueSheetGrabber.d.ts +0 -39
- package/lib/typescript/src/TrueSheetGrabber.d.ts.map +0 -1
- package/src/TrueSheetGrabber.tsx +0 -82
- package/src/__mocks__/index.js +0 -67
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Jovanni Lo (@lodev09)
|
|
3
|
+
// Copyright (c) 2024-present. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This source code is licensed under the MIT license found in the
|
|
6
|
+
// LICENSE file in the root directory of this source tree.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
10
|
+
|
|
11
|
+
#import <objc/runtime.h>
|
|
12
|
+
#import "PlatformUtil.h"
|
|
13
|
+
#import "UIView+ScrollEdgeInteraction.h"
|
|
14
|
+
|
|
15
|
+
static const void *kEdgeEffectHintKey = &kEdgeEffectHintKey;
|
|
16
|
+
|
|
17
|
+
@implementation UIView (ScrollEdgeInteraction)
|
|
18
|
+
|
|
19
|
+
- (void)cleanupEdgeInteraction API_AVAILABLE(ios(26.0)) {
|
|
20
|
+
#if RNTS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
21
|
+
for (id<UIInteraction> interaction in [self.interactions copy]) {
|
|
22
|
+
if ([interaction isKindOfClass:[UIScrollEdgeElementContainerInteraction class]]) {
|
|
23
|
+
[self removeInteraction:interaction];
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
UILabel *hint = objc_getAssociatedObject(self, kEdgeEffectHintKey);
|
|
30
|
+
[hint removeFromSuperview];
|
|
31
|
+
objc_setAssociatedObject(self, kEdgeEffectHintKey, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
- (void)setupEdgeInteractionWithScrollView:(nullable UIScrollView *)scrollView
|
|
35
|
+
edge:(UIRectEdge)edge API_AVAILABLE(ios(26.0)) {
|
|
36
|
+
[self cleanupEdgeInteraction];
|
|
37
|
+
|
|
38
|
+
if (!scrollView) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#if RNTS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
43
|
+
// UIScrollEdgeElementContainerInteraction requires standard UIKit element
|
|
44
|
+
// descendants (UILabel, UIControl, etc.) to trigger the edge effect.
|
|
45
|
+
// RCTViewComponentView subviews are not recognized, so we add a
|
|
46
|
+
// non-visible UILabel as an element hint.
|
|
47
|
+
UILabel *hint = [[UILabel alloc] initWithFrame:self.bounds];
|
|
48
|
+
hint.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
|
|
49
|
+
hint.userInteractionEnabled = NO;
|
|
50
|
+
[self addSubview:hint];
|
|
51
|
+
objc_setAssociatedObject(self, kEdgeEffectHintKey, hint, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
|
52
|
+
|
|
53
|
+
UIScrollEdgeElementContainerInteraction *interaction = [[UIScrollEdgeElementContainerInteraction alloc] init];
|
|
54
|
+
interaction.scrollView = scrollView;
|
|
55
|
+
interaction.edge = edge;
|
|
56
|
+
[self addInteraction:interaction];
|
|
57
|
+
#endif
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@end
|
|
61
|
+
|
|
62
|
+
#endif
|
package/ios/utils/WindowUtil.mm
CHANGED
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
+ (nullable UIWindow *)keyWindow {
|
|
16
16
|
NSSet<UIScene *> *connectedScenes = [UIApplication sharedApplication].connectedScenes;
|
|
17
17
|
|
|
18
|
+
UIWindow *fallbackWindow = nil;
|
|
19
|
+
|
|
18
20
|
for (UIScene *scene in connectedScenes) {
|
|
19
21
|
if ([scene isKindOfClass:[UIWindowScene class]]) {
|
|
20
22
|
UIWindowScene *windowScene = (UIWindowScene *)scene;
|
|
21
23
|
|
|
24
|
+
// Check for foreground active first (preferred)
|
|
22
25
|
if (windowScene.activationState == UISceneActivationStateForegroundActive) {
|
|
23
26
|
for (UIWindow *window in windowScene.windows) {
|
|
24
27
|
if (window.isKeyWindow) {
|
|
@@ -31,10 +34,23 @@
|
|
|
31
34
|
return windowScene.windows.firstObject;
|
|
32
35
|
}
|
|
33
36
|
}
|
|
37
|
+
|
|
38
|
+
// Store a fallback window for transitional states (e.g., deep link handling from background or cold start)
|
|
39
|
+
if (fallbackWindow == nil && windowScene.windows.count > 0) {
|
|
40
|
+
for (UIWindow *window in windowScene.windows) {
|
|
41
|
+
if (window.isKeyWindow) {
|
|
42
|
+
fallbackWindow = window;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (fallbackWindow == nil) {
|
|
47
|
+
fallbackWindow = windowScene.windows.firstObject;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
34
50
|
}
|
|
35
51
|
}
|
|
36
52
|
|
|
37
|
-
return
|
|
53
|
+
return fallbackWindow;
|
|
38
54
|
}
|
|
39
55
|
|
|
40
56
|
@end
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -4,9 +4,10 @@ import { PureComponent, createRef, isValidElement, createElement } from 'react';
|
|
|
4
4
|
import TrueSheetViewNativeComponent from './fabric/TrueSheetViewNativeComponent';
|
|
5
5
|
import TrueSheetContainerViewNativeComponent from './fabric/TrueSheetContainerViewNativeComponent';
|
|
6
6
|
import TrueSheetContentViewNativeComponent from './fabric/TrueSheetContentViewNativeComponent';
|
|
7
|
+
import TrueSheetHeaderViewNativeComponent from './fabric/TrueSheetHeaderViewNativeComponent';
|
|
7
8
|
import TrueSheetFooterViewNativeComponent from './fabric/TrueSheetFooterViewNativeComponent';
|
|
8
9
|
import TrueSheetModule from "./specs/NativeTrueSheetModule.js";
|
|
9
|
-
import { Platform,
|
|
10
|
+
import { Platform, StyleSheet, BackHandler, findNodeHandle, processColor } from 'react-native';
|
|
10
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
12
|
const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
12
13
|
ios: "- You have run 'pod install'\n",
|
|
@@ -15,8 +16,18 @@ const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't se
|
|
|
15
16
|
if (!TrueSheetModule) {
|
|
16
17
|
throw new Error(LINKING_ERROR);
|
|
17
18
|
}
|
|
19
|
+
// Claim touches that no descendant claimed so the responder negotiation
|
|
20
|
+
// doesn't bubble up to touchables outside the sheet
|
|
21
|
+
const absorbUnclaimedTouches = () => true;
|
|
22
|
+
|
|
23
|
+
// Stop raw touch events from bubbling past the sheet to outside ancestors
|
|
24
|
+
const stopTouchPropagation = event => event.stopPropagation();
|
|
18
25
|
export class TrueSheet extends PureComponent {
|
|
19
26
|
displayName = 'TrueSheet';
|
|
27
|
+
backHandlerSubscription = null;
|
|
28
|
+
isPresented = false;
|
|
29
|
+
isSheetVisible = true;
|
|
30
|
+
|
|
20
31
|
/**
|
|
21
32
|
* Map of sheet names against their instances.
|
|
22
33
|
*/
|
|
@@ -26,6 +37,11 @@ export class TrueSheet extends PureComponent {
|
|
|
26
37
|
* Resolver to be called when mount event is received
|
|
27
38
|
*/
|
|
28
39
|
presentationResolver = null;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Tracks if a present operation is in progress
|
|
43
|
+
*/
|
|
44
|
+
isPresenting = false;
|
|
29
45
|
constructor(props) {
|
|
30
46
|
super(props);
|
|
31
47
|
this.nativeRef = /*#__PURE__*/createRef();
|
|
@@ -34,9 +50,7 @@ export class TrueSheet extends PureComponent {
|
|
|
34
50
|
// Lazy load by default, except when initialDetentIndex is set (for auto-presentation)
|
|
35
51
|
const shouldRenderImmediately = props.initialDetentIndex !== undefined && props.initialDetentIndex >= 0;
|
|
36
52
|
this.state = {
|
|
37
|
-
shouldRenderNativeView: shouldRenderImmediately
|
|
38
|
-
containerWidth: undefined,
|
|
39
|
-
containerHeight: undefined
|
|
53
|
+
shouldRenderNativeView: shouldRenderImmediately
|
|
40
54
|
};
|
|
41
55
|
this.onMount = this.onMount.bind(this);
|
|
42
56
|
this.onWillDismiss = this.onWillDismiss.bind(this);
|
|
@@ -48,7 +62,12 @@ export class TrueSheet extends PureComponent {
|
|
|
48
62
|
this.onDragChange = this.onDragChange.bind(this);
|
|
49
63
|
this.onDragEnd = this.onDragEnd.bind(this);
|
|
50
64
|
this.onPositionChange = this.onPositionChange.bind(this);
|
|
51
|
-
this.
|
|
65
|
+
this.onWillFocus = this.onWillFocus.bind(this);
|
|
66
|
+
this.onDidFocus = this.onDidFocus.bind(this);
|
|
67
|
+
this.onWillBlur = this.onWillBlur.bind(this);
|
|
68
|
+
this.onDidBlur = this.onDidBlur.bind(this);
|
|
69
|
+
this.handleBackPress = this.handleBackPress.bind(this);
|
|
70
|
+
this.onVisibilityChange = this.onVisibilityChange.bind(this);
|
|
52
71
|
}
|
|
53
72
|
validateDetents() {
|
|
54
73
|
const {
|
|
@@ -64,7 +83,7 @@ export class TrueSheet extends PureComponent {
|
|
|
64
83
|
// Warn for invalid detent fractions
|
|
65
84
|
if (detents) {
|
|
66
85
|
detents.forEach((detent, index) => {
|
|
67
|
-
if (detent
|
|
86
|
+
if (typeof detent === 'number' && detent !== -1 && detent !== -2) {
|
|
68
87
|
if (detent <= 0 || detent > 1) {
|
|
69
88
|
console.warn(`TrueSheet: detent at index ${index} (${detent}) should be between 0 and 1. It will be clamped.`);
|
|
70
89
|
}
|
|
@@ -100,29 +119,46 @@ export class TrueSheet extends PureComponent {
|
|
|
100
119
|
* Present the sheet by given `name` (Promise-based)
|
|
101
120
|
* @param name - Sheet name (must match sheet's name prop)
|
|
102
121
|
* @param index - Detent index (default: 0)
|
|
122
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
103
123
|
* @returns Promise that resolves when sheet is fully presented
|
|
104
124
|
* @throws Error if sheet not found or presentation fails
|
|
105
125
|
*/
|
|
106
|
-
static async present(name, index = 0) {
|
|
126
|
+
static async present(name, index = 0, animated = true) {
|
|
107
127
|
const instance = TrueSheet.getInstance(name);
|
|
108
128
|
if (!instance) {
|
|
109
129
|
throw new Error(`Sheet with name "${name}" not found`);
|
|
110
130
|
}
|
|
111
|
-
return instance.present(index);
|
|
131
|
+
return instance.present(index, animated);
|
|
112
132
|
}
|
|
113
133
|
|
|
114
134
|
/**
|
|
115
135
|
* Dismiss the sheet by given `name` (Promise-based)
|
|
116
136
|
* @param name - Sheet name
|
|
137
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
117
138
|
* @returns Promise that resolves when sheet is fully dismissed
|
|
118
139
|
* @throws Error if sheet not found or dismissal fails
|
|
119
140
|
*/
|
|
120
|
-
static async dismiss(name) {
|
|
141
|
+
static async dismiss(name, animated = true) {
|
|
142
|
+
const instance = TrueSheet.getInstance(name);
|
|
143
|
+
if (!instance) {
|
|
144
|
+
throw new Error(`Sheet with name "${name}" not found`);
|
|
145
|
+
}
|
|
146
|
+
return instance.dismiss(animated);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Dismiss only the sheets presented on top of a sheet by given `name`
|
|
151
|
+
* @param name - Sheet name
|
|
152
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
153
|
+
* @returns Promise that resolves when all child sheets are dismissed
|
|
154
|
+
* @throws Error if sheet not found
|
|
155
|
+
*/
|
|
156
|
+
static async dismissStack(name, animated = true) {
|
|
121
157
|
const instance = TrueSheet.getInstance(name);
|
|
122
158
|
if (!instance) {
|
|
123
159
|
throw new Error(`Sheet with name "${name}" not found`);
|
|
124
160
|
}
|
|
125
|
-
return instance.
|
|
161
|
+
return instance.dismissStack(animated);
|
|
126
162
|
}
|
|
127
163
|
|
|
128
164
|
/**
|
|
@@ -139,6 +175,16 @@ export class TrueSheet extends PureComponent {
|
|
|
139
175
|
}
|
|
140
176
|
return instance.resize(index);
|
|
141
177
|
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Dismiss all presented sheets by dismissing from the bottom of the stack.
|
|
181
|
+
* This ensures child sheets are dismissed first before their parent.
|
|
182
|
+
* @param animated - Whether to animate the dismissals (default: true)
|
|
183
|
+
* @returns Promise that resolves when all sheets are dismissed
|
|
184
|
+
*/
|
|
185
|
+
static async dismissAll(animated = true) {
|
|
186
|
+
return TrueSheetModule?.dismissAll(animated);
|
|
187
|
+
}
|
|
142
188
|
registerInstance() {
|
|
143
189
|
if (this.props.name) {
|
|
144
190
|
TrueSheet.instances[this.props.name] = this;
|
|
@@ -156,16 +202,29 @@ export class TrueSheet extends PureComponent {
|
|
|
156
202
|
this.props.onWillPresent?.(event);
|
|
157
203
|
}
|
|
158
204
|
onDidPresent(event) {
|
|
205
|
+
this.isPresented = true;
|
|
206
|
+
if (Platform.OS === 'android') {
|
|
207
|
+
this.backHandlerSubscription?.remove();
|
|
208
|
+
this.backHandlerSubscription = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
|
|
209
|
+
}
|
|
159
210
|
this.props.onDidPresent?.(event);
|
|
160
211
|
}
|
|
161
212
|
onWillDismiss(event) {
|
|
162
213
|
this.props.onWillDismiss?.(event);
|
|
163
214
|
}
|
|
164
215
|
onDidDismiss(event) {
|
|
165
|
-
|
|
166
|
-
this.
|
|
167
|
-
|
|
168
|
-
|
|
216
|
+
this.isPresented = false;
|
|
217
|
+
this.isSheetVisible = true;
|
|
218
|
+
this.backHandlerSubscription?.remove();
|
|
219
|
+
this.backHandlerSubscription = null;
|
|
220
|
+
|
|
221
|
+
// Clean up native view after dismiss for lazy loading.
|
|
222
|
+
// Skip unmount if a present is in progress to avoid race condition.
|
|
223
|
+
if (!this.isPresenting) {
|
|
224
|
+
this.setState({
|
|
225
|
+
shouldRenderNativeView: false
|
|
226
|
+
});
|
|
227
|
+
}
|
|
169
228
|
this.props.onDidDismiss?.(event);
|
|
170
229
|
}
|
|
171
230
|
onMount(event) {
|
|
@@ -188,30 +247,49 @@ export class TrueSheet extends PureComponent {
|
|
|
188
247
|
onPositionChange(event) {
|
|
189
248
|
this.props.onPositionChange?.(event);
|
|
190
249
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
250
|
+
onWillFocus(event) {
|
|
251
|
+
this.props.onWillFocus?.(event);
|
|
252
|
+
}
|
|
253
|
+
onDidFocus(event) {
|
|
254
|
+
this.props.onDidFocus?.(event);
|
|
255
|
+
}
|
|
256
|
+
onWillBlur(event) {
|
|
257
|
+
this.props.onWillBlur?.(event);
|
|
258
|
+
}
|
|
259
|
+
onDidBlur(event) {
|
|
260
|
+
this.props.onDidBlur?.(event);
|
|
261
|
+
}
|
|
262
|
+
onVisibilityChange(event) {
|
|
263
|
+
this.isSheetVisible = event.nativeEvent.visible;
|
|
264
|
+
}
|
|
265
|
+
handleBackPress() {
|
|
266
|
+
if (!this.isPresented || !this.isSheetVisible) return false;
|
|
196
267
|
|
|
197
|
-
//
|
|
198
|
-
this.
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
268
|
+
// The native view can be detached (e.g. host screen unmounted by navigation)
|
|
269
|
+
// before onDidDismiss removes this subscription. Treat back press as a no-op
|
|
270
|
+
// instead of throwing from the handle getter.
|
|
271
|
+
const nodeHandle = findNodeHandle(this.nativeRef.current);
|
|
272
|
+
if (nodeHandle == null || nodeHandle === -1) return false;
|
|
202
273
|
|
|
203
|
-
//
|
|
274
|
+
// When not dismissible, let back propagate (e.g. navigation goes back to the previous screen)
|
|
275
|
+
if (this.props.dismissible === false) {
|
|
276
|
+
return this.props.onBackPress?.() ?? false;
|
|
277
|
+
}
|
|
278
|
+
TrueSheetModule?.handleBackPress(nodeHandle);
|
|
279
|
+
return this.props.onBackPress?.() ?? true;
|
|
204
280
|
}
|
|
205
281
|
|
|
206
282
|
/**
|
|
207
|
-
* Present the
|
|
208
|
-
* @param index -
|
|
283
|
+
* Present the sheet at a given detent index.
|
|
284
|
+
* @param index - The detent index to present at (default: 0)
|
|
285
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
209
286
|
*/
|
|
210
|
-
async present(index = 0) {
|
|
287
|
+
async present(index = 0, animated = true) {
|
|
211
288
|
const detentsLength = Math.min(this.props.detents?.length ?? 2, 3); // Max 3 detents
|
|
212
289
|
if (index < 0 || index >= detentsLength) {
|
|
213
290
|
throw new Error(`TrueSheet: present index (${index}) is out of bounds. detents array has ${detentsLength} item(s)`);
|
|
214
291
|
}
|
|
292
|
+
this.isPresenting = true;
|
|
215
293
|
|
|
216
294
|
// Lazy load: render native view if not already rendered
|
|
217
295
|
if (!this.state.shouldRenderNativeView) {
|
|
@@ -222,22 +300,33 @@ export class TrueSheet extends PureComponent {
|
|
|
222
300
|
});
|
|
223
301
|
});
|
|
224
302
|
}
|
|
225
|
-
|
|
303
|
+
await TrueSheetModule?.presentByRef(this.handle, index, animated);
|
|
304
|
+
this.isPresenting = false;
|
|
226
305
|
}
|
|
227
306
|
|
|
228
307
|
/**
|
|
229
|
-
*
|
|
230
|
-
*
|
|
308
|
+
* Resize the sheet to a given detent index.
|
|
309
|
+
* @param index - The detent index to resize to
|
|
231
310
|
*/
|
|
232
311
|
async resize(index) {
|
|
233
|
-
await this.
|
|
312
|
+
await TrueSheetModule?.resizeByRef(this.handle, index);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Dismiss this sheet and all sheets presented on top of it in a single animation.
|
|
317
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
318
|
+
*/
|
|
319
|
+
async dismiss(animated = true) {
|
|
320
|
+
return TrueSheetModule?.dismissByRef(this.handle, animated);
|
|
234
321
|
}
|
|
235
322
|
|
|
236
323
|
/**
|
|
237
|
-
*
|
|
324
|
+
* Dismiss only the sheets presented on top of this sheet, keeping this sheet presented.
|
|
325
|
+
* If no sheets are presented on top, this method does nothing.
|
|
326
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
238
327
|
*/
|
|
239
|
-
async
|
|
240
|
-
return TrueSheetModule?.
|
|
328
|
+
async dismissStack(animated = true) {
|
|
329
|
+
return TrueSheetModule?.dismissStackByRef(this.handle, animated);
|
|
241
330
|
}
|
|
242
331
|
componentDidMount() {
|
|
243
332
|
this.registerInstance();
|
|
@@ -252,34 +341,48 @@ export class TrueSheet extends PureComponent {
|
|
|
252
341
|
}
|
|
253
342
|
componentWillUnmount() {
|
|
254
343
|
this.unregisterInstance();
|
|
255
|
-
|
|
256
|
-
|
|
344
|
+
this.backHandlerSubscription?.remove();
|
|
345
|
+
this.backHandlerSubscription = null;
|
|
257
346
|
this.presentationResolver = null;
|
|
258
347
|
}
|
|
259
348
|
render() {
|
|
260
349
|
const {
|
|
261
350
|
detents = [0.5, 1],
|
|
262
|
-
backgroundColor
|
|
351
|
+
backgroundColor,
|
|
263
352
|
dismissible = true,
|
|
353
|
+
draggable = true,
|
|
264
354
|
grabber = true,
|
|
355
|
+
grabberOptions,
|
|
356
|
+
accessibilityOptions,
|
|
265
357
|
dimmed = true,
|
|
266
358
|
initialDetentIndex = -1,
|
|
267
359
|
initialDetentAnimated = true,
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
360
|
+
dimmedDetentIndex,
|
|
361
|
+
backgroundBlur,
|
|
362
|
+
blurOptions,
|
|
271
363
|
cornerRadius,
|
|
272
|
-
|
|
273
|
-
|
|
364
|
+
maxContentHeight,
|
|
365
|
+
maxContentWidth,
|
|
366
|
+
anchor = 'center',
|
|
367
|
+
anchorOffset,
|
|
368
|
+
scrollableOptions,
|
|
369
|
+
footerOptions,
|
|
370
|
+
presentation = 'page',
|
|
274
371
|
children,
|
|
275
372
|
style,
|
|
373
|
+
header,
|
|
374
|
+
headerStyle,
|
|
375
|
+
headerOptions,
|
|
276
376
|
footer,
|
|
277
|
-
|
|
377
|
+
footerStyle,
|
|
378
|
+
insetAdjustment = 'automatic',
|
|
379
|
+
...rest
|
|
278
380
|
} = this.props;
|
|
279
381
|
|
|
280
382
|
// Trim to max 3 detents and clamp fractions
|
|
281
383
|
const resolvedDetents = detents.slice(0, 3).map(detent => {
|
|
282
384
|
if (detent === 'auto' || detent === -1) return -1;
|
|
385
|
+
if (detent === 'peek' || detent === -2) return -2;
|
|
283
386
|
|
|
284
387
|
// Default to 0.1 if zero or below
|
|
285
388
|
if (detent <= 0) return 0.1;
|
|
@@ -287,22 +390,45 @@ export class TrueSheet extends PureComponent {
|
|
|
287
390
|
// Clamp to maximum of 1
|
|
288
391
|
return Math.min(1, detent);
|
|
289
392
|
});
|
|
393
|
+
|
|
394
|
+
// Cache grabberOptions to avoid creating a new object every render
|
|
395
|
+
if (grabberOptions !== this.cachedGrabberOptions) {
|
|
396
|
+
this.cachedGrabberOptions = grabberOptions;
|
|
397
|
+
this.resolvedGrabberOptions = {
|
|
398
|
+
...grabberOptions,
|
|
399
|
+
color: processColor(grabberOptions?.color)
|
|
400
|
+
};
|
|
401
|
+
}
|
|
290
402
|
return /*#__PURE__*/_jsx(TrueSheetViewNativeComponent, {
|
|
403
|
+
...rest,
|
|
291
404
|
ref: this.nativeRef,
|
|
292
405
|
style: styles.sheetView,
|
|
293
406
|
detents: resolvedDetents,
|
|
294
|
-
|
|
295
|
-
|
|
407
|
+
backgroundBlur: backgroundBlur,
|
|
408
|
+
blurOptions: blurOptions,
|
|
409
|
+
backgroundColor: backgroundColor,
|
|
296
410
|
cornerRadius: cornerRadius,
|
|
297
411
|
grabber: grabber,
|
|
412
|
+
grabberOptions: this.resolvedGrabberOptions,
|
|
413
|
+
accessibilityOptions: accessibilityOptions,
|
|
298
414
|
dimmed: dimmed,
|
|
299
|
-
|
|
300
|
-
keyboardMode: keyboardMode,
|
|
415
|
+
dimmedDetentIndex: dimmedDetentIndex,
|
|
301
416
|
initialDetentIndex: initialDetentIndex,
|
|
302
417
|
initialDetentAnimated: initialDetentAnimated,
|
|
303
418
|
dismissible: dismissible,
|
|
304
|
-
|
|
305
|
-
|
|
419
|
+
draggable: draggable,
|
|
420
|
+
maxContentHeight: maxContentHeight,
|
|
421
|
+
maxContentWidth: maxContentWidth,
|
|
422
|
+
anchor: anchor,
|
|
423
|
+
anchorOffset: anchorOffset,
|
|
424
|
+
scrollableOptions: scrollableOptions,
|
|
425
|
+
headerOptions: headerOptions,
|
|
426
|
+
footerOptions: {
|
|
427
|
+
footerPosition: footerOptions?.position,
|
|
428
|
+
keyboardOffset: footerOptions?.keyboardOffset
|
|
429
|
+
},
|
|
430
|
+
presentation: presentation,
|
|
431
|
+
insetAdjustment: insetAdjustment,
|
|
306
432
|
onMount: this.onMount,
|
|
307
433
|
onWillPresent: this.onWillPresent,
|
|
308
434
|
onDidPresent: this.onDidPresent,
|
|
@@ -313,37 +439,77 @@ export class TrueSheet extends PureComponent {
|
|
|
313
439
|
onDragChange: this.onDragChange,
|
|
314
440
|
onDragEnd: this.onDragEnd,
|
|
315
441
|
onPositionChange: this.onPositionChange,
|
|
316
|
-
|
|
442
|
+
onWillFocus: this.onWillFocus,
|
|
443
|
+
onDidFocus: this.onDidFocus,
|
|
444
|
+
onWillBlur: this.onWillBlur,
|
|
445
|
+
onDidBlur: this.onDidBlur,
|
|
446
|
+
onVisibilityChange: this.onVisibilityChange
|
|
447
|
+
// These must stay on this host view, not on the container. The container is
|
|
448
|
+
// reparented into the native sheet, so this view is never a native ancestor of
|
|
449
|
+
// the sheet content. Claiming the responder here stops the negotiation at the
|
|
450
|
+
// sheet boundary without making an ancestor of the content the JS responder,
|
|
451
|
+
// which would block scrolling inside the sheet.
|
|
452
|
+
,
|
|
453
|
+
onStartShouldSetResponder: absorbUnclaimedTouches,
|
|
454
|
+
onTouchStart: stopTouchPropagation,
|
|
455
|
+
onTouchMove: stopTouchPropagation,
|
|
456
|
+
onTouchEnd: stopTouchPropagation,
|
|
457
|
+
onTouchCancel: stopTouchPropagation,
|
|
317
458
|
children: this.state.shouldRenderNativeView && /*#__PURE__*/_jsxs(TrueSheetContainerViewNativeComponent, {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
},
|
|
323
|
-
collapsable: false,
|
|
324
|
-
children: [/*#__PURE__*/_jsx(TrueSheetContentViewNativeComponent, {
|
|
459
|
+
style: styles.container,
|
|
460
|
+
children: [header && /*#__PURE__*/_jsx(TrueSheetHeaderViewNativeComponent, {
|
|
461
|
+
style: [styles.header, headerOptions?.position === 'absolute' && styles.absoluteHeader, headerStyle],
|
|
462
|
+
children: /*#__PURE__*/isValidElement(header) ? header : /*#__PURE__*/createElement(header)
|
|
463
|
+
}), /*#__PURE__*/_jsx(TrueSheetContentViewNativeComponent, {
|
|
325
464
|
style: style,
|
|
326
|
-
collapsable: false,
|
|
327
465
|
children: children
|
|
328
466
|
}), footer && /*#__PURE__*/_jsx(TrueSheetFooterViewNativeComponent, {
|
|
329
|
-
|
|
330
|
-
|
|
467
|
+
autoBottomInset: insetAdjustment === 'automatic',
|
|
468
|
+
style: [styles.footer, footerOptions?.position === 'absolute' ? styles.absoluteFooter : styles.relativeFooter, footerStyle],
|
|
331
469
|
children: /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer)
|
|
332
470
|
})]
|
|
333
471
|
})
|
|
334
472
|
});
|
|
335
473
|
}
|
|
336
474
|
}
|
|
475
|
+
|
|
476
|
+
// Compile-time check: `TrueSheet`'s static surface must satisfy `TrueSheetStaticMethods`.
|
|
477
|
+
TrueSheet;
|
|
337
478
|
const styles = StyleSheet.create({
|
|
338
479
|
sheetView: {
|
|
480
|
+
...StyleSheet.absoluteFill,
|
|
481
|
+
zIndex: -9999,
|
|
482
|
+
pointerEvents: 'box-none'
|
|
483
|
+
},
|
|
484
|
+
// Fill the sheet so flex layouts track the sheet's size per detent
|
|
485
|
+
container: {
|
|
486
|
+
...StyleSheet.absoluteFill
|
|
487
|
+
},
|
|
488
|
+
header: {
|
|
489
|
+
pointerEvents: 'box-none'
|
|
490
|
+
},
|
|
491
|
+
// Floats over the content so it doesn't take up layout space
|
|
492
|
+
absoluteHeader: {
|
|
339
493
|
position: 'absolute',
|
|
340
|
-
|
|
341
|
-
|
|
494
|
+
top: 0,
|
|
495
|
+
left: 0,
|
|
496
|
+
right: 0,
|
|
497
|
+
zIndex: 1
|
|
342
498
|
},
|
|
343
499
|
footer: {
|
|
500
|
+
pointerEvents: 'box-none'
|
|
501
|
+
},
|
|
502
|
+
// Pinned to the sheet's bottom edge via Yoga since the container tracks the
|
|
503
|
+
// sheet's visible height — takes up layout space below the content
|
|
504
|
+
relativeFooter: {
|
|
505
|
+
marginTop: 'auto'
|
|
506
|
+
},
|
|
507
|
+
// Floats over the content so it doesn't take up layout space
|
|
508
|
+
absoluteFooter: {
|
|
344
509
|
position: 'absolute',
|
|
345
510
|
left: 0,
|
|
346
|
-
right: 0
|
|
511
|
+
right: 0,
|
|
512
|
+
bottom: 0
|
|
347
513
|
}
|
|
348
514
|
});
|
|
349
515
|
//# sourceMappingURL=TrueSheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","containerWidth","containerHeight","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onSizeChange","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","dismiss","resize","registerInstance","unregisterInstance","event","setState","width","height","nativeEvent","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","grabber","dimmed","initialDetentAnimated","keyboardMode","dimmedIndex","blurTint","cornerRadius","maxHeight","edgeToEdgeFullScreen","children","style","footer","testID","resolvedDetents","slice","map","ref","styles","sheetView","background","collapsable","create","position","zIndex","left","right"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","BackHandler","findNodeHandle","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","absorbUnclaimedTouches","stopTouchPropagation","event","stopPropagation","TrueSheet","displayName","backHandlerSubscription","isPresented","isSheetVisible","instances","presentationResolver","isPresenting","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","handleBackPress","onVisibilityChange","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","OS","remove","addEventListener","setState","nativeEvent","visible","dismissible","onBackPress","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","draggable","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","cornerRadius","maxContentHeight","maxContentWidth","anchor","anchorOffset","scrollableOptions","footerOptions","presentation","children","style","header","headerStyle","headerOptions","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","cachedGrabberOptions","resolvedGrabberOptions","color","ref","styles","sheetView","footerPosition","position","keyboardOffset","onStartShouldSetResponder","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","container","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","create","absoluteFill","zIndex","pointerEvents","top","left","right","marginTop","bottom"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|