@lodev09/react-native-true-sheet 2.0.6 → 4.0.0-beta.0

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.
Files changed (194) hide show
  1. package/README.md +36 -8
  2. package/RNTrueSheet.podspec +20 -0
  3. package/android/build.gradle +26 -14
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +108 -0
  5. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerViewManager.kt +21 -0
  6. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +46 -0
  7. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +21 -0
  8. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +47 -0
  9. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterViewManager.kt +21 -0
  10. package/android/src/main/java/com/lodev09/truesheet/TrueSheetModule.kt +165 -0
  11. package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +36 -4
  12. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +257 -303
  13. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +855 -0
  14. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +104 -82
  15. package/android/src/main/java/com/lodev09/truesheet/events/DetentChangeEvent.kt +26 -0
  16. package/android/src/main/java/com/lodev09/truesheet/events/DidDismissEvent.kt +20 -0
  17. package/android/src/main/java/com/lodev09/truesheet/events/DidPresentEvent.kt +26 -0
  18. package/android/src/main/java/com/lodev09/truesheet/events/DragBeginEvent.kt +26 -0
  19. package/android/src/main/java/com/lodev09/truesheet/events/DragChangeEvent.kt +26 -0
  20. package/android/src/main/java/com/lodev09/truesheet/events/DragEndEvent.kt +26 -0
  21. package/android/src/main/java/com/lodev09/truesheet/events/MountEvent.kt +20 -0
  22. package/android/src/main/java/com/lodev09/truesheet/events/PositionChangeEvent.kt +32 -0
  23. package/android/src/main/java/com/lodev09/truesheet/events/SizeChangeEvent.kt +27 -0
  24. package/android/src/main/java/com/lodev09/truesheet/events/WillDismissEvent.kt +20 -0
  25. package/android/src/main/java/com/lodev09/truesheet/events/WillPresentEvent.kt +26 -0
  26. package/android/src/main/java/com/lodev09/truesheet/{core/Utils.kt → utils/ScreenUtils.kt} +47 -17
  27. package/android/src/main/res/values/styles.xml +8 -0
  28. package/ios/TrueSheetComponentDescriptor.h +24 -0
  29. package/ios/TrueSheetContainerView.h +47 -0
  30. package/ios/TrueSheetContainerView.mm +117 -0
  31. package/ios/TrueSheetContentView.h +37 -0
  32. package/ios/TrueSheetContentView.mm +114 -0
  33. package/ios/TrueSheetFooterView.h +27 -0
  34. package/ios/TrueSheetFooterView.mm +101 -0
  35. package/ios/TrueSheetModule.h +44 -0
  36. package/ios/TrueSheetModule.mm +133 -0
  37. package/ios/TrueSheetView.h +53 -0
  38. package/ios/TrueSheetView.mm +433 -0
  39. package/ios/TrueSheetViewController.h +53 -0
  40. package/ios/TrueSheetViewController.mm +649 -0
  41. package/ios/events/OnDetentChangeEvent.h +28 -0
  42. package/ios/events/OnDetentChangeEvent.mm +30 -0
  43. package/ios/events/OnDidDismissEvent.h +26 -0
  44. package/ios/events/OnDidDismissEvent.mm +25 -0
  45. package/ios/events/OnDidPresentEvent.h +28 -0
  46. package/ios/events/OnDidPresentEvent.mm +30 -0
  47. package/ios/events/OnDragBeginEvent.h +28 -0
  48. package/ios/events/OnDragBeginEvent.mm +30 -0
  49. package/ios/events/OnDragChangeEvent.h +28 -0
  50. package/ios/events/OnDragChangeEvent.mm +30 -0
  51. package/ios/events/OnDragEndEvent.h +28 -0
  52. package/ios/events/OnDragEndEvent.mm +30 -0
  53. package/ios/events/OnMountEvent.h +26 -0
  54. package/ios/events/OnMountEvent.mm +25 -0
  55. package/ios/events/OnPositionChangeEvent.h +29 -0
  56. package/ios/events/OnPositionChangeEvent.mm +32 -0
  57. package/ios/events/OnSizeChangeEvent.h +28 -0
  58. package/ios/events/OnSizeChangeEvent.mm +30 -0
  59. package/ios/events/OnWillDismissEvent.h +26 -0
  60. package/ios/events/OnWillDismissEvent.mm +25 -0
  61. package/ios/events/OnWillPresentEvent.h +28 -0
  62. package/ios/events/OnWillPresentEvent.mm +30 -0
  63. package/ios/utils/GestureUtil.h +25 -0
  64. package/ios/utils/GestureUtil.mm +26 -0
  65. package/ios/utils/LayoutUtil.h +44 -0
  66. package/ios/utils/LayoutUtil.mm +50 -0
  67. package/ios/utils/WindowUtil.h +27 -0
  68. package/ios/utils/WindowUtil.mm +42 -0
  69. package/lib/module/TrueSheet.js +231 -135
  70. package/lib/module/TrueSheet.js.map +1 -1
  71. package/lib/module/TrueSheetGrabber.js +16 -14
  72. package/lib/module/TrueSheetGrabber.js.map +1 -1
  73. package/lib/module/fabric/TrueSheetContainerViewNativeComponent.ts +8 -0
  74. package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +8 -0
  75. package/lib/module/fabric/TrueSheetFooterViewNativeComponent.ts +8 -0
  76. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +63 -0
  77. package/lib/module/index.js +1 -0
  78. package/lib/module/index.js.map +1 -1
  79. package/lib/module/reanimated/ReanimatedTrueSheet.js +87 -0
  80. package/lib/module/reanimated/ReanimatedTrueSheet.js.map +1 -0
  81. package/lib/module/reanimated/ReanimatedTrueSheetProvider.js +72 -0
  82. package/lib/module/reanimated/ReanimatedTrueSheetProvider.js.map +1 -0
  83. package/lib/module/reanimated/index.js +6 -0
  84. package/lib/module/reanimated/index.js.map +1 -0
  85. package/lib/module/reanimated/useReanimatedPositionChangeHandler.js +19 -0
  86. package/lib/module/reanimated/useReanimatedPositionChangeHandler.js.map +1 -0
  87. package/lib/module/specs/NativeTrueSheetModule.js +12 -0
  88. package/lib/module/specs/NativeTrueSheetModule.js.map +1 -0
  89. package/lib/typescript/package.json +1 -0
  90. package/lib/typescript/src/TrueSheet.d.ts +79 -0
  91. package/lib/typescript/src/TrueSheet.d.ts.map +1 -0
  92. package/lib/typescript/src/TrueSheet.types.d.ts +260 -0
  93. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -0
  94. package/lib/typescript/{commonjs/src → src}/TrueSheetGrabber.d.ts +1 -1
  95. package/lib/typescript/src/TrueSheetGrabber.d.ts.map +1 -0
  96. package/lib/typescript/src/fabric/TrueSheetContainerViewNativeComponent.d.ts +6 -0
  97. package/lib/typescript/src/fabric/TrueSheetContainerViewNativeComponent.d.ts.map +1 -0
  98. package/lib/typescript/src/fabric/TrueSheetContentViewNativeComponent.d.ts +6 -0
  99. package/lib/typescript/src/fabric/TrueSheetContentViewNativeComponent.d.ts.map +1 -0
  100. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts +6 -0
  101. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts.map +1 -0
  102. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +44 -0
  103. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -0
  104. package/lib/typescript/{commonjs/src → src}/index.d.ts +1 -0
  105. package/lib/typescript/src/index.d.ts.map +1 -0
  106. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.d.ts +43 -0
  107. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.d.ts.map +1 -0
  108. package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts +57 -0
  109. package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts.map +1 -0
  110. package/lib/typescript/src/reanimated/index.d.ts +4 -0
  111. package/lib/typescript/src/reanimated/index.d.ts.map +1 -0
  112. package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.d.ts +6 -0
  113. package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.d.ts.map +1 -0
  114. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts +34 -0
  115. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts.map +1 -0
  116. package/package.json +104 -75
  117. package/react-native.config.js +17 -0
  118. package/src/TrueSheet.tsx +285 -188
  119. package/src/TrueSheet.types.ts +119 -106
  120. package/src/TrueSheetGrabber.tsx +29 -28
  121. package/src/__mocks__/index.js +60 -12
  122. package/src/fabric/TrueSheetContainerViewNativeComponent.ts +8 -0
  123. package/src/fabric/TrueSheetContentViewNativeComponent.ts +8 -0
  124. package/src/fabric/TrueSheetFooterViewNativeComponent.ts +8 -0
  125. package/src/fabric/TrueSheetViewNativeComponent.ts +63 -0
  126. package/src/index.ts +4 -3
  127. package/src/reanimated/ReanimatedTrueSheet.tsx +95 -0
  128. package/src/reanimated/ReanimatedTrueSheetProvider.tsx +92 -0
  129. package/src/reanimated/index.ts +3 -0
  130. package/src/reanimated/useReanimatedPositionChangeHandler.ts +26 -0
  131. package/src/specs/NativeTrueSheetModule.ts +38 -0
  132. package/TrueSheet.podspec +0 -49
  133. package/android/src/main/java/com/lodev09/truesheet/TrueSheetDialog.kt +0 -413
  134. package/android/src/main/java/com/lodev09/truesheet/TrueSheetEvent.kt +0 -22
  135. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewModule.kt +0 -63
  136. package/android/src/main/java/com/lodev09/truesheet/core/KeyboardManager.kt +0 -58
  137. package/android/src/main/java/com/lodev09/truesheet/core/RootSheetView.kt +0 -102
  138. package/ios/Extensions/UIBlurEffect+withTint.swift +0 -62
  139. package/ios/Extensions/UIView+pinTo.swift +0 -74
  140. package/ios/Extensions/UIViewController+detentForSize.swift +0 -134
  141. package/ios/TrueSheet-Bridging-Header.h +0 -14
  142. package/ios/TrueSheetEvent.swift +0 -48
  143. package/ios/TrueSheetView.swift +0 -467
  144. package/ios/TrueSheetViewController.swift +0 -275
  145. package/ios/TrueSheetViewManager.m +0 -53
  146. package/ios/TrueSheetViewManager.swift +0 -48
  147. package/ios/Utils/Logger.swift +0 -39
  148. package/ios/Utils/Promise.swift +0 -25
  149. package/lib/commonjs/TrueSheet.js +0 -258
  150. package/lib/commonjs/TrueSheet.js.map +0 -1
  151. package/lib/commonjs/TrueSheet.types.js +0 -6
  152. package/lib/commonjs/TrueSheet.types.js.map +0 -1
  153. package/lib/commonjs/TrueSheetFooter.js +0 -19
  154. package/lib/commonjs/TrueSheetFooter.js.map +0 -1
  155. package/lib/commonjs/TrueSheetGrabber.js +0 -54
  156. package/lib/commonjs/TrueSheetGrabber.js.map +0 -1
  157. package/lib/commonjs/TrueSheetModule.js +0 -19
  158. package/lib/commonjs/TrueSheetModule.js.map +0 -1
  159. package/lib/commonjs/__mocks__/index.js +0 -52
  160. package/lib/commonjs/__mocks__/index.js.map +0 -1
  161. package/lib/commonjs/index.js +0 -39
  162. package/lib/commonjs/index.js.map +0 -1
  163. package/lib/module/TrueSheetFooter.js +0 -14
  164. package/lib/module/TrueSheetFooter.js.map +0 -1
  165. package/lib/module/TrueSheetModule.js +0 -15
  166. package/lib/module/TrueSheetModule.js.map +0 -1
  167. package/lib/module/__mocks__/index.js +0 -21
  168. package/lib/module/__mocks__/index.js.map +0 -1
  169. package/lib/typescript/commonjs/package.json +0 -1
  170. package/lib/typescript/commonjs/src/TrueSheet.d.ts +0 -70
  171. package/lib/typescript/commonjs/src/TrueSheet.d.ts.map +0 -1
  172. package/lib/typescript/commonjs/src/TrueSheet.types.d.ts +0 -241
  173. package/lib/typescript/commonjs/src/TrueSheet.types.d.ts.map +0 -1
  174. package/lib/typescript/commonjs/src/TrueSheetFooter.d.ts +0 -7
  175. package/lib/typescript/commonjs/src/TrueSheetFooter.d.ts.map +0 -1
  176. package/lib/typescript/commonjs/src/TrueSheetGrabber.d.ts.map +0 -1
  177. package/lib/typescript/commonjs/src/TrueSheetModule.d.ts +0 -2
  178. package/lib/typescript/commonjs/src/TrueSheetModule.d.ts.map +0 -1
  179. package/lib/typescript/commonjs/src/index.d.ts.map +0 -1
  180. package/lib/typescript/module/src/TrueSheet.d.ts +0 -70
  181. package/lib/typescript/module/src/TrueSheet.d.ts.map +0 -1
  182. package/lib/typescript/module/src/TrueSheet.types.d.ts +0 -241
  183. package/lib/typescript/module/src/TrueSheet.types.d.ts.map +0 -1
  184. package/lib/typescript/module/src/TrueSheetFooter.d.ts +0 -7
  185. package/lib/typescript/module/src/TrueSheetFooter.d.ts.map +0 -1
  186. package/lib/typescript/module/src/TrueSheetGrabber.d.ts +0 -39
  187. package/lib/typescript/module/src/TrueSheetGrabber.d.ts.map +0 -1
  188. package/lib/typescript/module/src/TrueSheetModule.d.ts +0 -2
  189. package/lib/typescript/module/src/TrueSheetModule.d.ts.map +0 -1
  190. package/lib/typescript/module/src/index.d.ts +0 -4
  191. package/lib/typescript/module/src/index.d.ts.map +0 -1
  192. package/src/TrueSheetFooter.tsx +0 -17
  193. package/src/TrueSheetModule.ts +0 -19
  194. /package/lib/{typescript/module → module}/package.json +0 -0
@@ -0,0 +1,50 @@
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 "LayoutUtil.h"
12
+
13
+ @implementation LayoutUtil
14
+
15
+ + (void)pinView:(UIView *)view toParentView:(UIView *)parentView edges:(UIRectEdge)edges {
16
+ [self pinView:view toParentView:parentView edges:edges height:0];
17
+ }
18
+
19
+ + (void)pinView:(UIView *)view toParentView:(UIView *)parentView edges:(UIRectEdge)edges height:(CGFloat)height {
20
+ view.translatesAutoresizingMaskIntoConstraints = NO;
21
+
22
+ if (edges & UIRectEdgeTop) {
23
+ [view.topAnchor constraintEqualToAnchor:parentView.topAnchor].active = YES;
24
+ }
25
+ if (edges & UIRectEdgeBottom) {
26
+ [view.bottomAnchor constraintEqualToAnchor:parentView.bottomAnchor].active = YES;
27
+ }
28
+ if (edges & UIRectEdgeLeft) {
29
+ [view.leadingAnchor constraintEqualToAnchor:parentView.leadingAnchor].active = YES;
30
+ }
31
+ if (edges & UIRectEdgeRight) {
32
+ [view.trailingAnchor constraintEqualToAnchor:parentView.trailingAnchor].active = YES;
33
+ }
34
+
35
+ // Apply height constraint if provided
36
+ if (height > 0) {
37
+ [view.heightAnchor constraintEqualToConstant:height].active = YES;
38
+ }
39
+ }
40
+
41
+ + (void)unpinView:(UIView *)view {
42
+ if (!view)
43
+ return;
44
+ view.translatesAutoresizingMaskIntoConstraints = YES;
45
+ [view removeConstraints:view.constraints];
46
+ }
47
+
48
+ @end
49
+
50
+ #endif
@@ -0,0 +1,27 @@
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 <UIKit/UIKit.h>
12
+
13
+ NS_ASSUME_NONNULL_BEGIN
14
+
15
+ @interface WindowUtil : NSObject
16
+
17
+ /**
18
+ * Gets the key window using the UIWindowScene API (iOS 15.1+)
19
+ * @return The key window, or nil if not found
20
+ */
21
+ + (nullable UIWindow *)keyWindow;
22
+
23
+ @end
24
+
25
+ NS_ASSUME_NONNULL_END
26
+
27
+ #endif
@@ -0,0 +1,42 @@
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 "WindowUtil.h"
12
+
13
+ @implementation WindowUtil
14
+
15
+ + (nullable UIWindow *)keyWindow {
16
+ NSSet<UIScene *> *connectedScenes = [UIApplication sharedApplication].connectedScenes;
17
+
18
+ for (UIScene *scene in connectedScenes) {
19
+ if ([scene isKindOfClass:[UIWindowScene class]]) {
20
+ UIWindowScene *windowScene = (UIWindowScene *)scene;
21
+
22
+ if (windowScene.activationState == UISceneActivationStateForegroundActive) {
23
+ for (UIWindow *window in windowScene.windows) {
24
+ if (window.isKeyWindow) {
25
+ return window;
26
+ }
27
+ }
28
+
29
+ // If no key window found, return the first window
30
+ if (windowScene.windows.count > 0) {
31
+ return windowScene.windows.firstObject;
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ return nil;
38
+ }
39
+
40
+ @end
41
+
42
+ #endif
@@ -1,126 +1,180 @@
1
1
  "use strict";
2
2
 
3
- import { PureComponent, createRef } from 'react';
4
- import { requireNativeComponent, Platform, findNodeHandle, View, processColor } from 'react-native';
5
- import { TrueSheetModule } from "./TrueSheetModule.js";
6
- import { TrueSheetGrabber } from "./TrueSheetGrabber.js";
7
- import { TrueSheetFooter } from "./TrueSheetFooter.js";
3
+ import { PureComponent, createRef, isValidElement, createElement } from 'react';
4
+ import TrueSheetViewNativeComponent from './fabric/TrueSheetViewNativeComponent';
5
+ import TrueSheetContainerViewNativeComponent from './fabric/TrueSheetContainerViewNativeComponent';
6
+ import TrueSheetContentViewNativeComponent from './fabric/TrueSheetContentViewNativeComponent';
7
+ import TrueSheetFooterViewNativeComponent from './fabric/TrueSheetFooterViewNativeComponent';
8
+ import TrueSheetModule from "./specs/NativeTrueSheetModule.js";
9
+ import { Platform, processColor, StyleSheet, findNodeHandle } from 'react-native';
8
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
- const NATIVE_COMPONENT_NAME = 'TrueSheetView';
10
11
  const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
11
12
  ios: "- You have run 'pod install'\n",
12
13
  default: ''
13
- }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
14
- const TrueSheetNativeView = requireNativeComponent(NATIVE_COMPONENT_NAME);
15
- if (!TrueSheetNativeView) {
14
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '- You are using the new architecture (Fabric)\n';
15
+ if (!TrueSheetModule) {
16
16
  throw new Error(LINKING_ERROR);
17
17
  }
18
18
  export class TrueSheet extends PureComponent {
19
19
  displayName = 'TrueSheet';
20
20
  /**
21
- * Map of sheet names against their handle.
21
+ * Map of sheet names against their instances.
22
22
  */
23
- static handles = {};
23
+ static instances = {};
24
+
25
+ /**
26
+ * Resolver to be called when mount event is received
27
+ */
28
+ presentationResolver = null;
24
29
  constructor(props) {
25
30
  super(props);
26
- this.ref = /*#__PURE__*/createRef();
31
+ this.nativeRef = /*#__PURE__*/createRef();
32
+ this.validateDetents();
33
+
34
+ // Lazy load by default, except when initialDetentIndex is set (for auto-presentation)
35
+ const shouldRenderImmediately = props.initialDetentIndex !== undefined && props.initialDetentIndex >= 0;
36
+ this.state = {
37
+ shouldRenderNativeView: shouldRenderImmediately,
38
+ containerWidth: undefined,
39
+ containerHeight: undefined
40
+ };
27
41
  this.onMount = this.onMount.bind(this);
28
- this.onDismiss = this.onDismiss.bind(this);
29
- this.onPresent = this.onPresent.bind(this);
30
- this.onSizeChange = this.onSizeChange.bind(this);
42
+ this.onWillDismiss = this.onWillDismiss.bind(this);
43
+ this.onDidDismiss = this.onDidDismiss.bind(this);
44
+ this.onWillPresent = this.onWillPresent.bind(this);
45
+ this.onDidPresent = this.onDidPresent.bind(this);
46
+ this.onDetentChange = this.onDetentChange.bind(this);
31
47
  this.onDragBegin = this.onDragBegin.bind(this);
32
48
  this.onDragChange = this.onDragChange.bind(this);
33
49
  this.onDragEnd = this.onDragEnd.bind(this);
34
- this.onContentLayout = this.onContentLayout.bind(this);
35
- this.onFooterLayout = this.onFooterLayout.bind(this);
36
- this.onContainerSizeChange = this.onContainerSizeChange.bind(this);
37
- this.state = {
38
- containerWidth: undefined,
39
- containerHeight: undefined,
40
- contentHeight: undefined,
41
- footerHeight: undefined,
42
- scrollableHandle: null
43
- };
50
+ this.onPositionChange = this.onPositionChange.bind(this);
51
+ this.onSizeChange = this.onSizeChange.bind(this);
44
52
  }
45
- static getHandle(name) {
46
- const handle = TrueSheet.handles[name];
47
- if (!handle) {
48
- console.warn(`Could not get native view tag from "${name}". Check your name prop.`);
53
+ validateDetents() {
54
+ const {
55
+ detents,
56
+ initialDetentIndex
57
+ } = this.props;
58
+
59
+ // Warn if detents length exceeds 3
60
+ if (detents && detents.length > 3) {
61
+ console.warn(`TrueSheet: detents array has ${detents.length} items but maximum is 3. Only the first 3 will be used.`);
62
+ }
63
+
64
+ // Warn for invalid detent fractions
65
+ if (detents) {
66
+ detents.forEach((detent, index) => {
67
+ if (detent !== 'auto' && typeof detent === 'number') {
68
+ if (detent <= 0 || detent > 1) {
69
+ console.warn(`TrueSheet: detent at index ${index} (${detent}) should be between 0 and 1. It will be clamped.`);
70
+ }
71
+ }
72
+ });
73
+ }
74
+
75
+ // Validate initialDetentIndex bounds
76
+ if (initialDetentIndex !== undefined && initialDetentIndex >= 0) {
77
+ const detentsLength = Math.min(detents?.length ?? 2, 3); // Max 3 detents
78
+ if (initialDetentIndex >= detentsLength) {
79
+ throw new Error(`TrueSheet: initialDetentIndex (${initialDetentIndex}) is out of bounds. detents array has ${detentsLength} item(s)`);
80
+ }
81
+ }
82
+ }
83
+ static getInstance(name) {
84
+ const instance = TrueSheet.instances[name];
85
+ if (!instance) {
86
+ console.warn(`Could not find TrueSheet instance with name "${name}". Check your name prop.`);
49
87
  return;
50
88
  }
51
- return handle;
89
+ return instance;
90
+ }
91
+ get handle() {
92
+ const nodeHandle = findNodeHandle(this.nativeRef.current);
93
+ if (nodeHandle == null || nodeHandle === -1) {
94
+ throw new Error('Could not get native view tag');
95
+ }
96
+ return nodeHandle;
52
97
  }
53
98
 
54
99
  /**
55
- * Present the sheet by given `name`.
56
- * See `name` prop.
100
+ * Present the sheet by given `name` (Promise-based)
101
+ * @param name - Sheet name (must match sheet's name prop)
102
+ * @param index - Detent index (default: 0)
103
+ * @returns Promise that resolves when sheet is fully presented
104
+ * @throws Error if sheet not found or presentation fails
57
105
  */
58
106
  static async present(name, index = 0) {
59
- const handle = TrueSheet.getHandle(name);
60
- if (!handle) return;
61
- await TrueSheetModule.present(handle, index);
107
+ const instance = TrueSheet.getInstance(name);
108
+ if (!instance) {
109
+ throw new Error(`Sheet with name "${name}" not found`);
110
+ }
111
+ return instance.present(index);
62
112
  }
63
113
 
64
114
  /**
65
- * Dismiss the sheet by given `name`.
66
- * See `name` prop.
115
+ * Dismiss the sheet by given `name` (Promise-based)
116
+ * @param name - Sheet name
117
+ * @returns Promise that resolves when sheet is fully dismissed
118
+ * @throws Error if sheet not found or dismissal fails
67
119
  */
68
120
  static async dismiss(name) {
69
- const handle = TrueSheet.getHandle(name);
70
- if (!handle) return;
71
- await TrueSheetModule.dismiss(handle);
121
+ const instance = TrueSheet.getInstance(name);
122
+ if (!instance) {
123
+ throw new Error(`Sheet with name "${name}" not found`);
124
+ }
125
+ return instance.dismiss();
72
126
  }
73
127
 
74
128
  /**
75
- * Resize the sheet by given `name`.
76
- * See `name` prop.
129
+ * Resize the sheet by given `name` (Promise-based)
130
+ * @param name - Sheet name
131
+ * @param index - New detent index
132
+ * @returns Promise that resolves when resize is complete
133
+ * @throws Error if sheet not found
77
134
  */
78
135
  static async resize(name, index) {
79
- await TrueSheet.present(name, index);
136
+ const instance = TrueSheet.getInstance(name);
137
+ if (!instance) {
138
+ throw new Error(`Sheet with name "${name}" not found`);
139
+ }
140
+ return instance.resize(index);
80
141
  }
81
- get handle() {
82
- const nodeHandle = findNodeHandle(this.ref.current);
83
- if (nodeHandle == null || nodeHandle === -1) {
84
- throw new Error('Could not get native view tag');
142
+ registerInstance() {
143
+ if (this.props.name) {
144
+ TrueSheet.instances[this.props.name] = this;
85
145
  }
86
- return nodeHandle;
87
146
  }
88
- updateState() {
89
- const scrollableHandle = this.props.scrollRef?.current ? findNodeHandle(this.props.scrollRef.current) : null;
147
+ unregisterInstance() {
90
148
  if (this.props.name) {
91
- TrueSheet.handles[this.props.name] = this.handle;
149
+ delete TrueSheet.instances[this.props.name];
92
150
  }
93
- this.setState({
94
- scrollableHandle
95
- });
96
151
  }
97
- onSizeChange(event) {
98
- this.props.onSizeChange?.(event);
152
+ onDetentChange(event) {
153
+ this.props.onDetentChange?.(event);
99
154
  }
100
- onContainerSizeChange(event) {
101
- this.setState({
102
- containerWidth: event.nativeEvent.width,
103
- containerHeight: event.nativeEvent.height
104
- });
155
+ onWillPresent(event) {
156
+ this.props.onWillPresent?.(event);
105
157
  }
106
- onPresent(event) {
107
- this.props.onPresent?.(event);
158
+ onDidPresent(event) {
159
+ this.props.onDidPresent?.(event);
108
160
  }
109
- onFooterLayout(event) {
110
- this.setState({
111
- footerHeight: event.nativeEvent.layout.height
112
- });
161
+ onWillDismiss(event) {
162
+ this.props.onWillDismiss?.(event);
113
163
  }
114
- onContentLayout(event) {
164
+ onDidDismiss(event) {
165
+ // Clean up native view after dismiss for lazy loading
115
166
  this.setState({
116
- contentHeight: event.nativeEvent.layout.height
167
+ shouldRenderNativeView: false
117
168
  });
169
+ this.props.onDidDismiss?.(event);
118
170
  }
119
- onDismiss() {
120
- this.props.onDismiss?.();
121
- }
122
- onMount() {
123
- this.props.onMount?.();
171
+ onMount(event) {
172
+ // Resolve the mount promise if waiting
173
+ if (this.presentationResolver) {
174
+ this.presentationResolver();
175
+ this.presentationResolver = null;
176
+ }
177
+ this.props.onMount?.(event);
124
178
  }
125
179
  onDragBegin(event) {
126
180
  this.props.onDragBegin?.(event);
@@ -131,13 +185,44 @@ export class TrueSheet extends PureComponent {
131
185
  onDragEnd(event) {
132
186
  this.props.onDragEnd?.(event);
133
187
  }
188
+ onPositionChange(event) {
189
+ this.props.onPositionChange?.(event);
190
+ }
191
+ onSizeChange(event) {
192
+ const {
193
+ width,
194
+ height
195
+ } = event.nativeEvent;
196
+
197
+ // Update container view dimensions in state
198
+ this.setState({
199
+ containerWidth: width,
200
+ containerHeight: height
201
+ });
202
+
203
+ // Internal handler only - not exposed to users
204
+ }
134
205
 
135
206
  /**
136
- * Present the sheet. Optionally accepts a size `index`.
137
- * See `sizes` prop
207
+ * Present the Sheet by `index` (Promise-based)
208
+ * @param index - Detent index (default: 0)
138
209
  */
139
210
  async present(index = 0) {
140
- await TrueSheetModule.present(this.handle, index);
211
+ const detentsLength = Math.min(this.props.detents?.length ?? 2, 3); // Max 3 detents
212
+ if (index < 0 || index >= detentsLength) {
213
+ throw new Error(`TrueSheet: present index (${index}) is out of bounds. detents array has ${detentsLength} item(s)`);
214
+ }
215
+
216
+ // Lazy load: render native view if not already rendered
217
+ if (!this.state.shouldRenderNativeView) {
218
+ await new Promise(resolve => {
219
+ this.presentationResolver = resolve;
220
+ this.setState({
221
+ shouldRenderNativeView: true
222
+ });
223
+ });
224
+ }
225
+ return TrueSheetModule?.presentByRef(this.handle, index);
141
226
  }
142
227
 
143
228
  /**
@@ -152,102 +237,113 @@ export class TrueSheet extends PureComponent {
152
237
  * Dismisses the Sheet
153
238
  */
154
239
  async dismiss() {
155
- await TrueSheetModule.dismiss(this.handle);
240
+ return TrueSheetModule?.dismissByRef(this.handle);
156
241
  }
157
242
  componentDidMount() {
158
- if (this.props.sizes && this.props.sizes.length > 3) {
159
- console.warn('TrueSheet only supports a maximum of 3 sizes; collapsed, half-expanded and expanded. Check your `sizes` prop.');
243
+ this.registerInstance();
244
+ }
245
+ componentDidUpdate(prevProps) {
246
+ this.registerInstance();
247
+
248
+ // Validate when detents prop changes
249
+ if (prevProps.detents !== this.props.detents) {
250
+ this.validateDetents();
160
251
  }
161
- this.updateState();
162
252
  }
163
- componentDidUpdate() {
164
- this.updateState();
253
+ componentWillUnmount() {
254
+ this.unregisterInstance();
255
+
256
+ // Clean up presentation resolver
257
+ this.presentationResolver = null;
165
258
  }
166
259
  render() {
167
260
  const {
168
- sizes = ['medium', 'large'],
261
+ detents = [0.5, 1],
169
262
  backgroundColor = 'white',
170
263
  dismissible = true,
171
264
  grabber = true,
172
265
  dimmed = true,
173
- initialIndexAnimated = true,
174
- edgeToEdge = false,
266
+ initialDetentIndex = -1,
267
+ initialDetentAnimated = true,
175
268
  keyboardMode = 'resize',
176
- initialIndex,
177
269
  dimmedIndex,
178
- grabberProps,
179
270
  blurTint,
180
271
  cornerRadius,
181
272
  maxHeight,
182
- FooterComponent,
183
- style,
184
- contentContainerStyle,
273
+ edgeToEdgeFullScreen,
185
274
  children,
186
- ...rest
275
+ style,
276
+ footer,
277
+ testID
187
278
  } = this.props;
188
- return /*#__PURE__*/_jsx(TrueSheetNativeView, {
189
- ref: this.ref,
190
- style: $nativeSheet,
191
- scrollableHandle: this.state.scrollableHandle,
192
- sizes: sizes,
279
+
280
+ // Trim to max 3 detents and clamp fractions
281
+ const resolvedDetents = detents.slice(0, 3).map(detent => {
282
+ if (detent === 'auto' || detent === -1) return -1;
283
+
284
+ // Default to 0.1 if zero or below
285
+ if (detent <= 0) return 0.1;
286
+
287
+ // Clamp to maximum of 1
288
+ return Math.min(1, detent);
289
+ });
290
+ return /*#__PURE__*/_jsx(TrueSheetViewNativeComponent, {
291
+ ref: this.nativeRef,
292
+ style: styles.sheetView,
293
+ detents: resolvedDetents,
193
294
  blurTint: blurTint,
194
- background: processColor(backgroundColor),
295
+ background: processColor(backgroundColor) ?? 0,
195
296
  cornerRadius: cornerRadius,
196
- contentHeight: this.state.contentHeight,
197
- footerHeight: this.state.footerHeight,
198
297
  grabber: grabber,
199
298
  dimmed: dimmed,
200
299
  dimmedIndex: dimmedIndex,
201
- edgeToEdge: edgeToEdge,
202
- initialIndex: initialIndex,
203
- initialIndexAnimated: initialIndexAnimated,
204
300
  keyboardMode: keyboardMode,
301
+ initialDetentIndex: initialDetentIndex,
302
+ initialDetentAnimated: initialDetentAnimated,
205
303
  dismissible: dismissible,
206
304
  maxHeight: maxHeight,
305
+ edgeToEdgeFullScreen: edgeToEdgeFullScreen,
207
306
  onMount: this.onMount,
208
- onPresent: this.onPresent,
209
- onDismiss: this.onDismiss,
210
- onSizeChange: this.onSizeChange,
307
+ onWillPresent: this.onWillPresent,
308
+ onDidPresent: this.onDidPresent,
309
+ onWillDismiss: this.onWillDismiss,
310
+ onDidDismiss: this.onDidDismiss,
311
+ onDetentChange: this.onDetentChange,
211
312
  onDragBegin: this.onDragBegin,
212
313
  onDragChange: this.onDragChange,
213
314
  onDragEnd: this.onDragEnd,
214
- onContainerSizeChange: this.onContainerSizeChange,
215
- children: /*#__PURE__*/_jsxs(View, {
216
- collapsable: false,
217
- style: [{
218
- overflow: Platform.select({
219
- ios: undefined,
220
- android: 'hidden'
221
- }),
222
- // Update the width on JS side.
223
- // New Arch interop does not support updating it in native :/
315
+ onPositionChange: this.onPositionChange,
316
+ onSizeChange: this.onSizeChange,
317
+ children: this.state.shouldRenderNativeView && /*#__PURE__*/_jsxs(TrueSheetContainerViewNativeComponent, {
318
+ testID: testID,
319
+ style: {
224
320
  width: this.state.containerWidth,
225
321
  height: this.state.containerHeight
226
- }, style],
227
- ...rest,
228
- children: [/*#__PURE__*/_jsx(View, {
322
+ },
323
+ collapsable: false,
324
+ children: [/*#__PURE__*/_jsx(TrueSheetContentViewNativeComponent, {
325
+ style: style,
229
326
  collapsable: false,
230
- onLayout: this.onContentLayout,
231
- style: contentContainerStyle,
232
327
  children: children
233
- }), /*#__PURE__*/_jsx(View, {
328
+ }), footer && /*#__PURE__*/_jsx(TrueSheetFooterViewNativeComponent, {
329
+ style: styles.footer,
234
330
  collapsable: false,
235
- onLayout: this.onFooterLayout,
236
- children: /*#__PURE__*/_jsx(TrueSheetFooter, {
237
- Component: FooterComponent
238
- })
239
- }), Platform.OS === 'android' && /*#__PURE__*/_jsx(TrueSheetGrabber, {
240
- visible: grabber,
241
- ...grabberProps
331
+ children: /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer)
242
332
  })]
243
333
  })
244
334
  });
245
335
  }
246
336
  }
247
- const $nativeSheet = {
248
- position: 'absolute',
249
- width: '100%',
250
- left: -9999,
251
- zIndex: -9999
252
- };
337
+ const styles = StyleSheet.create({
338
+ sheetView: {
339
+ position: 'absolute',
340
+ width: '100%',
341
+ zIndex: -9999
342
+ },
343
+ footer: {
344
+ position: 'absolute',
345
+ left: 0,
346
+ right: 0
347
+ }
348
+ });
253
349
  //# sourceMappingURL=TrueSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PureComponent","createRef","requireNativeComponent","Platform","findNodeHandle","View","processColor","TrueSheetModule","TrueSheetGrabber","TrueSheetFooter","jsx","_jsx","jsxs","_jsxs","NATIVE_COMPONENT_NAME","LINKING_ERROR","select","ios","default","TrueSheetNativeView","Error","TrueSheet","displayName","handles","constructor","props","ref","onMount","bind","onDismiss","onPresent","onSizeChange","onDragBegin","onDragChange","onDragEnd","onContentLayout","onFooterLayout","onContainerSizeChange","state","containerWidth","undefined","containerHeight","contentHeight","footerHeight","scrollableHandle","getHandle","name","handle","console","warn","present","index","dismiss","resize","nodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","width","height","layout","componentDidMount","sizes","length","componentDidUpdate","render","backgroundColor","dismissible","grabber","dimmed","initialIndexAnimated","edgeToEdge","keyboardMode","initialIndex","dimmedIndex","grabberProps","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","$nativeSheet","background","collapsable","overflow","android","onLayout","Component","OS","visible","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAA6BC,SAAS,QAAwB,OAAO;AAC3F,SACEC,sBAAsB,EACtBC,QAAQ,EACRC,cAAc,EACdC,IAAI,EAMJC,YAAY,QACP,cAAc;AAUrB,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,eAAe,QAAQ,sBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEnD,MAAMC,qBAAqB,GAAG,eAAe;AAC7C,MAAMC,aAAa,GACjB,2FAA2F,GAC3FZ,QAAQ,CAACa,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAsBjC,MAAMC,mBAAmB,GAAGjB,sBAAsB,CAA2BY,qBAAqB,CAAC;AAEnG,IAAI,CAACK,mBAAmB,EAAE;EACxB,MAAM,IAAIC,KAAK,CAACL,aAAa,CAAC;AAChC;AAEA,OAAO,MAAMM,SAAS,SAASrB,aAAa,CAAiC;EAC3EsB,WAAW,GAAG,WAAW;EAIzB;AACF;AACA;EACE,OAAwBC,OAAO,GAA+B,CAAC,CAAC;EAEhEC,WAAWA,CAACC,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,GAAG,gBAAGzB,SAAS,CAAY,CAAC;IAEjC,IAAI,CAAC0B,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC;IACtC,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACD,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACE,SAAS,GAAG,IAAI,CAACA,SAAS,CAACF,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACG,YAAY,GAAG,IAAI,CAACA,YAAY,CAACH,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACI,WAAW,GAAG,IAAI,CAACA,WAAW,CAACJ,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACK,YAAY,GAAG,IAAI,CAACA,YAAY,CAACL,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACM,SAAS,GAAG,IAAI,CAACA,SAAS,CAACN,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACO,eAAe,GAAG,IAAI,CAACA,eAAe,CAACP,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACQ,cAAc,GAAG,IAAI,CAACA,cAAc,CAACR,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACS,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACT,IAAI,CAAC,IAAI,CAAC;IAElE,IAAI,CAACU,KAAK,GAAG;MACXC,cAAc,EAAEC,SAAS;MACzBC,eAAe,EAAED,SAAS;MAC1BE,aAAa,EAAEF,SAAS;MACxBG,YAAY,EAAEH,SAAS;MACvBI,gBAAgB,EAAE;IACpB,CAAC;EACH;EAEA,OAAeC,SAASA,CAACC,IAAY,EAAE;IACrC,MAAMC,MAAM,GAAG1B,SAAS,CAACE,OAAO,CAACuB,IAAI,CAAC;IACtC,IAAI,CAACC,MAAM,EAAE;MACXC,OAAO,CAACC,IAAI,CAAC,uCAAuCH,IAAI,0BAA0B,CAAC;MACnF;IACF;IAEA,OAAOC,MAAM;EACf;;EAEA;AACF;AACA;AACA;EACE,aAAoBG,OAAOA,CAACJ,IAAY,EAAEK,KAAa,GAAG,CAAC,EAAE;IAC3D,MAAMJ,MAAM,GAAG1B,SAAS,CAACwB,SAAS,CAACC,IAAI,CAAC;IACxC,IAAI,CAACC,MAAM,EAAE;IAEb,MAAMxC,eAAe,CAAC2C,OAAO,CAACH,MAAM,EAAEI,KAAK,CAAC;EAC9C;;EAEA;AACF;AACA;AACA;EACE,aAAoBC,OAAOA,CAACN,IAAY,EAAE;IACxC,MAAMC,MAAM,GAAG1B,SAAS,CAACwB,SAAS,CAACC,IAAI,CAAC;IACxC,IAAI,CAACC,MAAM,EAAE;IAEb,MAAMxC,eAAe,CAAC6C,OAAO,CAACL,MAAM,CAAC;EACvC;;EAEA;AACF;AACA;AACA;EACE,aAAoBM,MAAMA,CAACP,IAAY,EAAEK,KAAa,EAAE;IACtD,MAAM9B,SAAS,CAAC6B,OAAO,CAACJ,IAAI,EAAEK,KAAK,CAAC;EACtC;EAEA,IAAYJ,MAAMA,CAAA,EAAW;IAC3B,MAAMO,UAAU,GAAGlD,cAAc,CAAC,IAAI,CAACsB,GAAG,CAAC6B,OAAO,CAAC;IACnD,IAAID,UAAU,IAAI,IAAI,IAAIA,UAAU,KAAK,CAAC,CAAC,EAAE;MAC3C,MAAM,IAAIlC,KAAK,CAAC,+BAA+B,CAAC;IAClD;IAEA,OAAOkC,UAAU;EACnB;EAEQE,WAAWA,CAAA,EAAS;IAC1B,MAAMZ,gBAAgB,GAAG,IAAI,CAACnB,KAAK,CAACgC,SAAS,EAAEF,OAAO,GAClDnD,cAAc,CAAC,IAAI,CAACqB,KAAK,CAACgC,SAAS,CAACF,OAAO,CAAC,GAC5C,IAAI;IAER,IAAI,IAAI,CAAC9B,KAAK,CAACqB,IAAI,EAAE;MACnBzB,SAAS,CAACE,OAAO,CAAC,IAAI,CAACE,KAAK,CAACqB,IAAI,CAAC,GAAG,IAAI,CAACC,MAAM;IAClD;IAEA,IAAI,CAACW,QAAQ,CAAC;MACZd;IACF,CAAC,CAAC;EACJ;EAEQb,YAAYA,CAAC4B,KAAsB,EAAQ;IACjD,IAAI,CAAClC,KAAK,CAACM,YAAY,GAAG4B,KAAK,CAAC;EAClC;EAEQtB,qBAAqBA,CAACsB,KAA+B,EAAQ;IACnE,IAAI,CAACD,QAAQ,CAAC;MACZnB,cAAc,EAAEoB,KAAK,CAACC,WAAW,CAACC,KAAK;MACvCpB,eAAe,EAAEkB,KAAK,CAACC,WAAW,CAACE;IACrC,CAAC,CAAC;EACJ;EAEQhC,SAASA,CAAC6B,KAAmB,EAAQ;IAC3C,IAAI,CAAClC,KAAK,CAACK,SAAS,GAAG6B,KAAK,CAAC;EAC/B;EAEQvB,cAAcA,CAACuB,KAAwB,EAAQ;IACrD,IAAI,CAACD,QAAQ,CAAC;MACZf,YAAY,EAAEgB,KAAK,CAACC,WAAW,CAACG,MAAM,CAACD;IACzC,CAAC,CAAC;EACJ;EAEQ3B,eAAeA,CAACwB,KAAwB,EAAQ;IACtD,IAAI,CAACD,QAAQ,CAAC;MACZhB,aAAa,EAAEiB,KAAK,CAACC,WAAW,CAACG,MAAM,CAACD;IAC1C,CAAC,CAAC;EACJ;EAEQjC,SAASA,CAAA,EAAS;IACxB,IAAI,CAACJ,KAAK,CAACI,SAAS,GAAG,CAAC;EAC1B;EAEQF,OAAOA,CAAA,EAAS;IACtB,IAAI,CAACF,KAAK,CAACE,OAAO,GAAG,CAAC;EACxB;EAEQK,WAAWA,CAAC2B,KAAqB,EAAQ;IAC/C,IAAI,CAAClC,KAAK,CAACO,WAAW,GAAG2B,KAAK,CAAC;EACjC;EAEQ1B,YAAYA,CAAC0B,KAAsB,EAAQ;IACjD,IAAI,CAAClC,KAAK,CAACQ,YAAY,GAAG0B,KAAK,CAAC;EAClC;EAEQzB,SAASA,CAACyB,KAAmB,EAAQ;IAC3C,IAAI,CAAClC,KAAK,CAACS,SAAS,GAAGyB,KAAK,CAAC;EAC/B;;EAEA;AACF;AACA;AACA;EACE,MAAaT,OAAOA,CAACC,KAAa,GAAG,CAAC,EAAiB;IACrD,MAAM5C,eAAe,CAAC2C,OAAO,CAAC,IAAI,CAACH,MAAM,EAAEI,KAAK,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACE,MAAaE,MAAMA,CAACF,KAAa,EAAiB;IAChD,MAAM,IAAI,CAACD,OAAO,CAACC,KAAK,CAAC;EAC3B;;EAEA;AACF;AACA;EACE,MAAaC,OAAOA,CAAA,EAAkB;IACpC,MAAM7C,eAAe,CAAC6C,OAAO,CAAC,IAAI,CAACL,MAAM,CAAC;EAC5C;EAEAiB,iBAAiBA,CAAA,EAAS;IACxB,IAAI,IAAI,CAACvC,KAAK,CAACwC,KAAK,IAAI,IAAI,CAACxC,KAAK,CAACwC,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MACnDlB,OAAO,CAACC,IAAI,CACV,+GACF,CAAC;IACH;IAEA,IAAI,CAACO,WAAW,CAAC,CAAC;EACpB;EAEAW,kBAAkBA,CAAA,EAAS;IACzB,IAAI,CAACX,WAAW,CAAC,CAAC;EACpB;EAEAY,MAAMA,CAAA,EAAc;IAClB,MAAM;MACJH,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;MAC3BI,eAAe,GAAG,OAAO;MACzBC,WAAW,GAAG,IAAI;MAClBC,OAAO,GAAG,IAAI;MACdC,MAAM,GAAG,IAAI;MACbC,oBAAoB,GAAG,IAAI;MAC3BC,UAAU,GAAG,KAAK;MAClBC,YAAY,GAAG,QAAQ;MACvBC,YAAY;MACZC,WAAW;MACXC,YAAY;MACZC,QAAQ;MACRC,YAAY;MACZC,SAAS;MACTC,eAAe;MACfC,KAAK;MACLC,qBAAqB;MACrBC,QAAQ;MACR,GAAGC;IACL,CAAC,GAAG,IAAI,CAAC7D,KAAK;IAEd,oBACEd,IAAA,CAACQ,mBAAmB;MAClBO,GAAG,EAAE,IAAI,CAACA,GAAI;MACdyD,KAAK,EAAEI,YAAa;MACpB3C,gBAAgB,EAAE,IAAI,CAACN,KAAK,CAACM,gBAAiB;MAC9CqB,KAAK,EAAEA,KAAM;MACbc,QAAQ,EAAEA,QAAS;MACnBS,UAAU,EAAElF,YAAY,CAAC+D,eAAe,CAAE;MAC1CW,YAAY,EAAEA,YAAa;MAC3BtC,aAAa,EAAE,IAAI,CAACJ,KAAK,CAACI,aAAc;MACxCC,YAAY,EAAE,IAAI,CAACL,KAAK,CAACK,YAAa;MACtC4B,OAAO,EAAEA,OAAQ;MACjBC,MAAM,EAAEA,MAAO;MACfK,WAAW,EAAEA,WAAY;MACzBH,UAAU,EAAEA,UAAW;MACvBE,YAAY,EAAEA,YAAa;MAC3BH,oBAAoB,EAAEA,oBAAqB;MAC3CE,YAAY,EAAEA,YAAa;MAC3BL,WAAW,EAAEA,WAAY;MACzBW,SAAS,EAAEA,SAAU;MACrBtD,OAAO,EAAE,IAAI,CAACA,OAAQ;MACtBG,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BD,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BE,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCC,WAAW,EAAE,IAAI,CAACA,WAAY;MAC9BC,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCC,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BG,qBAAqB,EAAE,IAAI,CAACA,qBAAsB;MAAAgD,QAAA,eAElDxE,KAAA,CAACR,IAAI;QACHoF,WAAW,EAAE,KAAM;QACnBN,KAAK,EAAE,CACL;UACEO,QAAQ,EAAEvF,QAAQ,CAACa,MAAM,CAAC;YAAEC,GAAG,EAAEuB,SAAS;YAAEmD,OAAO,EAAE;UAAS,CAAC,CAAC;UAEhE;UACA;UACA9B,KAAK,EAAE,IAAI,CAACvB,KAAK,CAACC,cAAc;UAChCuB,MAAM,EAAE,IAAI,CAACxB,KAAK,CAACG;QACrB,CAAC,EACD0C,KAAK,CACL;QAAA,GACEG,IAAI;QAAAD,QAAA,gBAER1E,IAAA,CAACN,IAAI;UAACoF,WAAW,EAAE,KAAM;UAACG,QAAQ,EAAE,IAAI,CAACzD,eAAgB;UAACgD,KAAK,EAAEC,qBAAsB;UAAAC,QAAA,EACpFA;QAAQ,CACL,CAAC,eACP1E,IAAA,CAACN,IAAI;UAACoF,WAAW,EAAE,KAAM;UAACG,QAAQ,EAAE,IAAI,CAACxD,cAAe;UAAAiD,QAAA,eACtD1E,IAAA,CAACF,eAAe;YAACoF,SAAS,EAAEX;UAAgB,CAAE;QAAC,CAC3C,CAAC,EACN/E,QAAQ,CAAC2F,EAAE,KAAK,SAAS,iBAAInF,IAAA,CAACH,gBAAgB;UAACuF,OAAO,EAAExB,OAAQ;UAAA,GAAKO;QAAY,CAAG,CAAC;MAAA,CAClF;IAAC,CACY,CAAC;EAE1B;AACF;AAEA,MAAMS,YAAuB,GAAG;EAC9BS,QAAQ,EAAE,UAAU;EACpBnC,KAAK,EAAE,MAAM;EACboC,IAAI,EAAE,CAAC,IAAI;EACXC,MAAM,EAAE,CAAC;AACX,CAAC","ignoreList":[]}
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":[]}