@shaquillehinds/react-native-bottom-sheet 0.0.1

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 (187) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +880 -0
  3. package/lib/commonjs/BottomSheet/animations/drag.animation.js +72 -0
  4. package/lib/commonjs/BottomSheet/animations/drag.animation.js.map +1 -0
  5. package/lib/commonjs/BottomSheet/components/BottomSheet.js +92 -0
  6. package/lib/commonjs/BottomSheet/components/BottomSheet.js.map +1 -0
  7. package/lib/commonjs/BottomSheet/components/BottomSheetFlatlist.js +38 -0
  8. package/lib/commonjs/BottomSheet/components/BottomSheetFlatlist.js.map +1 -0
  9. package/lib/commonjs/BottomSheet/components/BottomSheetModal.js +34 -0
  10. package/lib/commonjs/BottomSheet/components/BottomSheetModal.js.map +1 -0
  11. package/lib/commonjs/BottomSheet/components/BottomSheetScrollView.js +37 -0
  12. package/lib/commonjs/BottomSheet/components/BottomSheetScrollView.js.map +1 -0
  13. package/lib/commonjs/BottomSheet/config/bottomSheet.constants.js +35 -0
  14. package/lib/commonjs/BottomSheet/config/bottomSheet.constants.js.map +1 -0
  15. package/lib/commonjs/BottomSheet/config/bottomSheet.styles.js +42 -0
  16. package/lib/commonjs/BottomSheet/config/bottomSheet.styles.js.map +1 -0
  17. package/lib/commonjs/BottomSheet/config/bottomSheet.types.js +14 -0
  18. package/lib/commonjs/BottomSheet/config/bottomSheet.types.js.map +1 -0
  19. package/lib/commonjs/BottomSheet/controller/bottomFlatlist.controller.js +69 -0
  20. package/lib/commonjs/BottomSheet/controller/bottomFlatlist.controller.js.map +1 -0
  21. package/lib/commonjs/BottomSheet/controller/bottomScrollView.controller.js +41 -0
  22. package/lib/commonjs/BottomSheet/controller/bottomScrollView.controller.js.map +1 -0
  23. package/lib/commonjs/BottomSheet/controller/bottomSheet.controller.js +216 -0
  24. package/lib/commonjs/BottomSheet/controller/bottomSheet.controller.js.map +1 -0
  25. package/lib/commonjs/BottomSheet/controller/callbacks.controller.js +135 -0
  26. package/lib/commonjs/BottomSheet/controller/callbacks.controller.js.map +1 -0
  27. package/lib/commonjs/BottomSheet/controller/dragAnimation.controller.js +127 -0
  28. package/lib/commonjs/BottomSheet/controller/dragAnimation.controller.js.map +1 -0
  29. package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetRef.js +60 -0
  30. package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetRef.js.map +1 -0
  31. package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetUtils.js +74 -0
  32. package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetUtils.js.map +1 -0
  33. package/lib/commonjs/BottomSheet/controller/index.js +17 -0
  34. package/lib/commonjs/BottomSheet/controller/index.js.map +1 -0
  35. package/lib/commonjs/BottomSheet/controller/keyboardAnimation.controller.js +88 -0
  36. package/lib/commonjs/BottomSheet/controller/keyboardAnimation.controller.js.map +1 -0
  37. package/lib/commonjs/BottomSheet/controller/scrollContent.controller.js +89 -0
  38. package/lib/commonjs/BottomSheet/controller/scrollContent.controller.js.map +1 -0
  39. package/lib/commonjs/BottomSheet/index.js +130 -0
  40. package/lib/commonjs/BottomSheet/index.js.map +1 -0
  41. package/lib/commonjs/index.js +17 -0
  42. package/lib/commonjs/index.js.map +1 -0
  43. package/lib/commonjs/package.json +1 -0
  44. package/lib/module/BottomSheet/animations/drag.animation.js +68 -0
  45. package/lib/module/BottomSheet/animations/drag.animation.js.map +1 -0
  46. package/lib/module/BottomSheet/components/BottomSheet.js +87 -0
  47. package/lib/module/BottomSheet/components/BottomSheet.js.map +1 -0
  48. package/lib/module/BottomSheet/components/BottomSheetFlatlist.js +32 -0
  49. package/lib/module/BottomSheet/components/BottomSheetFlatlist.js.map +1 -0
  50. package/lib/module/BottomSheet/components/BottomSheetModal.js +30 -0
  51. package/lib/module/BottomSheet/components/BottomSheetModal.js.map +1 -0
  52. package/lib/module/BottomSheet/components/BottomSheetScrollView.js +31 -0
  53. package/lib/module/BottomSheet/components/BottomSheetScrollView.js.map +1 -0
  54. package/lib/module/BottomSheet/config/bottomSheet.constants.js +30 -0
  55. package/lib/module/BottomSheet/config/bottomSheet.constants.js.map +1 -0
  56. package/lib/module/BottomSheet/config/bottomSheet.styles.js +38 -0
  57. package/lib/module/BottomSheet/config/bottomSheet.styles.js.map +1 -0
  58. package/lib/module/BottomSheet/config/bottomSheet.types.js +10 -0
  59. package/lib/module/BottomSheet/config/bottomSheet.types.js.map +1 -0
  60. package/lib/module/BottomSheet/controller/bottomFlatlist.controller.js +64 -0
  61. package/lib/module/BottomSheet/controller/bottomFlatlist.controller.js.map +1 -0
  62. package/lib/module/BottomSheet/controller/bottomScrollView.controller.js +37 -0
  63. package/lib/module/BottomSheet/controller/bottomScrollView.controller.js.map +1 -0
  64. package/lib/module/BottomSheet/controller/bottomSheet.controller.js +212 -0
  65. package/lib/module/BottomSheet/controller/bottomSheet.controller.js.map +1 -0
  66. package/lib/module/BottomSheet/controller/callbacks.controller.js +130 -0
  67. package/lib/module/BottomSheet/controller/callbacks.controller.js.map +1 -0
  68. package/lib/module/BottomSheet/controller/dragAnimation.controller.js +122 -0
  69. package/lib/module/BottomSheet/controller/dragAnimation.controller.js.map +1 -0
  70. package/lib/module/BottomSheet/controller/hooks/useBottomSheetRef.js +56 -0
  71. package/lib/module/BottomSheet/controller/hooks/useBottomSheetRef.js.map +1 -0
  72. package/lib/module/BottomSheet/controller/hooks/useBottomSheetUtils.js +70 -0
  73. package/lib/module/BottomSheet/controller/hooks/useBottomSheetUtils.js.map +1 -0
  74. package/lib/module/BottomSheet/controller/index.js +4 -0
  75. package/lib/module/BottomSheet/controller/index.js.map +1 -0
  76. package/lib/module/BottomSheet/controller/keyboardAnimation.controller.js +84 -0
  77. package/lib/module/BottomSheet/controller/keyboardAnimation.controller.js.map +1 -0
  78. package/lib/module/BottomSheet/controller/scrollContent.controller.js +84 -0
  79. package/lib/module/BottomSheet/controller/scrollContent.controller.js.map +1 -0
  80. package/lib/module/BottomSheet/index.js +112 -0
  81. package/lib/module/BottomSheet/index.js.map +1 -0
  82. package/lib/module/index.js +4 -0
  83. package/lib/module/index.js.map +1 -0
  84. package/lib/module/package.json +1 -0
  85. package/lib/typescript/commonjs/package.json +1 -0
  86. package/lib/typescript/commonjs/src/BottomSheet/animations/drag.animation.d.ts +31 -0
  87. package/lib/typescript/commonjs/src/BottomSheet/animations/drag.animation.d.ts.map +1 -0
  88. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheet.d.ts +9 -0
  89. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheet.d.ts.map +1 -0
  90. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetFlatlist.d.ts +3 -0
  91. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetFlatlist.d.ts.map +1 -0
  92. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetModal.d.ts +8 -0
  93. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetModal.d.ts.map +1 -0
  94. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetScrollView.d.ts +3 -0
  95. package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetScrollView.d.ts.map +1 -0
  96. package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.constants.d.ts +30 -0
  97. package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.constants.d.ts.map +1 -0
  98. package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.styles.d.ts +37 -0
  99. package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.styles.d.ts.map +1 -0
  100. package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.types.d.ts +185 -0
  101. package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.types.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/src/BottomSheet/controller/bottomFlatlist.controller.d.ts +480 -0
  103. package/lib/typescript/commonjs/src/BottomSheet/controller/bottomFlatlist.controller.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/src/BottomSheet/controller/bottomScrollView.controller.d.ts +338 -0
  105. package/lib/typescript/commonjs/src/BottomSheet/controller/bottomScrollView.controller.d.ts.map +1 -0
  106. package/lib/typescript/commonjs/src/BottomSheet/controller/bottomSheet.controller.d.ts +51 -0
  107. package/lib/typescript/commonjs/src/BottomSheet/controller/bottomSheet.controller.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/src/BottomSheet/controller/callbacks.controller.d.ts +36 -0
  109. package/lib/typescript/commonjs/src/BottomSheet/controller/callbacks.controller.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/src/BottomSheet/controller/dragAnimation.controller.d.ts +27 -0
  111. package/lib/typescript/commonjs/src/BottomSheet/controller/dragAnimation.controller.d.ts.map +1 -0
  112. package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts +12 -0
  113. package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts.map +1 -0
  114. package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts +40 -0
  115. package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/src/BottomSheet/controller/index.d.ts +2 -0
  117. package/lib/typescript/commonjs/src/BottomSheet/controller/index.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/src/BottomSheet/controller/keyboardAnimation.controller.d.ts +15 -0
  119. package/lib/typescript/commonjs/src/BottomSheet/controller/keyboardAnimation.controller.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/src/BottomSheet/controller/scrollContent.controller.d.ts +20 -0
  121. package/lib/typescript/commonjs/src/BottomSheet/controller/scrollContent.controller.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/src/BottomSheet/index.d.ts +23 -0
  123. package/lib/typescript/commonjs/src/BottomSheet/index.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/src/index.d.ts +2 -0
  125. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  126. package/lib/typescript/module/package.json +1 -0
  127. package/lib/typescript/module/src/BottomSheet/animations/drag.animation.d.ts +31 -0
  128. package/lib/typescript/module/src/BottomSheet/animations/drag.animation.d.ts.map +1 -0
  129. package/lib/typescript/module/src/BottomSheet/components/BottomSheet.d.ts +9 -0
  130. package/lib/typescript/module/src/BottomSheet/components/BottomSheet.d.ts.map +1 -0
  131. package/lib/typescript/module/src/BottomSheet/components/BottomSheetFlatlist.d.ts +3 -0
  132. package/lib/typescript/module/src/BottomSheet/components/BottomSheetFlatlist.d.ts.map +1 -0
  133. package/lib/typescript/module/src/BottomSheet/components/BottomSheetModal.d.ts +8 -0
  134. package/lib/typescript/module/src/BottomSheet/components/BottomSheetModal.d.ts.map +1 -0
  135. package/lib/typescript/module/src/BottomSheet/components/BottomSheetScrollView.d.ts +3 -0
  136. package/lib/typescript/module/src/BottomSheet/components/BottomSheetScrollView.d.ts.map +1 -0
  137. package/lib/typescript/module/src/BottomSheet/config/bottomSheet.constants.d.ts +30 -0
  138. package/lib/typescript/module/src/BottomSheet/config/bottomSheet.constants.d.ts.map +1 -0
  139. package/lib/typescript/module/src/BottomSheet/config/bottomSheet.styles.d.ts +37 -0
  140. package/lib/typescript/module/src/BottomSheet/config/bottomSheet.styles.d.ts.map +1 -0
  141. package/lib/typescript/module/src/BottomSheet/config/bottomSheet.types.d.ts +185 -0
  142. package/lib/typescript/module/src/BottomSheet/config/bottomSheet.types.d.ts.map +1 -0
  143. package/lib/typescript/module/src/BottomSheet/controller/bottomFlatlist.controller.d.ts +480 -0
  144. package/lib/typescript/module/src/BottomSheet/controller/bottomFlatlist.controller.d.ts.map +1 -0
  145. package/lib/typescript/module/src/BottomSheet/controller/bottomScrollView.controller.d.ts +338 -0
  146. package/lib/typescript/module/src/BottomSheet/controller/bottomScrollView.controller.d.ts.map +1 -0
  147. package/lib/typescript/module/src/BottomSheet/controller/bottomSheet.controller.d.ts +51 -0
  148. package/lib/typescript/module/src/BottomSheet/controller/bottomSheet.controller.d.ts.map +1 -0
  149. package/lib/typescript/module/src/BottomSheet/controller/callbacks.controller.d.ts +36 -0
  150. package/lib/typescript/module/src/BottomSheet/controller/callbacks.controller.d.ts.map +1 -0
  151. package/lib/typescript/module/src/BottomSheet/controller/dragAnimation.controller.d.ts +27 -0
  152. package/lib/typescript/module/src/BottomSheet/controller/dragAnimation.controller.d.ts.map +1 -0
  153. package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts +12 -0
  154. package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts.map +1 -0
  155. package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts +40 -0
  156. package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts.map +1 -0
  157. package/lib/typescript/module/src/BottomSheet/controller/index.d.ts +2 -0
  158. package/lib/typescript/module/src/BottomSheet/controller/index.d.ts.map +1 -0
  159. package/lib/typescript/module/src/BottomSheet/controller/keyboardAnimation.controller.d.ts +15 -0
  160. package/lib/typescript/module/src/BottomSheet/controller/keyboardAnimation.controller.d.ts.map +1 -0
  161. package/lib/typescript/module/src/BottomSheet/controller/scrollContent.controller.d.ts +20 -0
  162. package/lib/typescript/module/src/BottomSheet/controller/scrollContent.controller.d.ts.map +1 -0
  163. package/lib/typescript/module/src/BottomSheet/index.d.ts +23 -0
  164. package/lib/typescript/module/src/BottomSheet/index.d.ts.map +1 -0
  165. package/lib/typescript/module/src/index.d.ts +2 -0
  166. package/lib/typescript/module/src/index.d.ts.map +1 -0
  167. package/package.json +203 -0
  168. package/src/BottomSheet/animations/drag.animation.ts +86 -0
  169. package/src/BottomSheet/components/BottomSheet.tsx +157 -0
  170. package/src/BottomSheet/components/BottomSheetFlatlist.tsx +46 -0
  171. package/src/BottomSheet/components/BottomSheetModal.tsx +47 -0
  172. package/src/BottomSheet/components/BottomSheetScrollView.tsx +46 -0
  173. package/src/BottomSheet/config/bottomSheet.constants.ts +31 -0
  174. package/src/BottomSheet/config/bottomSheet.styles.ts +42 -0
  175. package/src/BottomSheet/config/bottomSheet.types.ts +246 -0
  176. package/src/BottomSheet/controller/bottomFlatlist.controller.ts +87 -0
  177. package/src/BottomSheet/controller/bottomScrollView.controller.ts +43 -0
  178. package/src/BottomSheet/controller/bottomSheet.controller.ts +238 -0
  179. package/src/BottomSheet/controller/callbacks.controller.ts +222 -0
  180. package/src/BottomSheet/controller/dragAnimation.controller.ts +211 -0
  181. package/src/BottomSheet/controller/hooks/useBottomSheetRef.ts +73 -0
  182. package/src/BottomSheet/controller/hooks/useBottomSheetUtils.ts +75 -0
  183. package/src/BottomSheet/controller/index.ts +1 -0
  184. package/src/BottomSheet/controller/keyboardAnimation.controller.ts +148 -0
  185. package/src/BottomSheet/controller/scrollContent.controller.ts +120 -0
  186. package/src/BottomSheet/index.tsx +139 -0
  187. package/src/index.tsx +1 -0
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bottomSheetController = bottomSheetController;
7
+ var _dragAnimation = require("../animations/drag.animation.js");
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+ var _react = require("react");
10
+ var _bottomSheetTypes = require("../config/bottomSheet.types.js");
11
+ var _keyboardAnimationController = require("./keyboardAnimation.controller.js");
12
+ var _dragAnimationController = require("./dragAnimation.controller.js");
13
+ var _callbacksController = require("./callbacks.controller.js");
14
+ var _scrollContentController = require("./scrollContent.controller.js");
15
+ var _reactNativeEssentials = require("@shaquillehinds/react-native-essentials");
16
+ var _useBottomSheetUtils = require("./hooks/useBottomSheetUtils.js");
17
+ function bottomSheetController(props) {
18
+ const utils = (0, _useBottomSheetUtils.useBottomSheetUtils)();
19
+ const modalState = (0, _react.useRef)(_bottomSheetTypes.ModalState.CLOSED);
20
+ const fullyOpenYPosition = (0, _reactNativeReanimated.useSharedValue)(0);
21
+ const lowestSnapPointPosition = (0, _reactNativeReanimated.useSharedValue)(0);
22
+ const closedYPosition = (0, _reactNativeReanimated.useSharedValue)(0);
23
+ const currentSnapPoint = (0, _reactNativeReanimated.useSharedValue)({
24
+ offset: 0
25
+ });
26
+ const snapPoints = (0, _reactNativeReanimated.useSharedValue)((props.snapPoints || []).map(p => utils.percentageToSnapPoint(p)));
27
+ const translationX = (0, _reactNativeReanimated.useSharedValue)(0);
28
+ const translationY = (0, _reactNativeReanimated.useSharedValue)(0);
29
+ const prevTranslationY = (0, _reactNativeReanimated.useSharedValue)(0);
30
+ const keyboardHeight = (0, _reactNativeReanimated.useSharedValue)(0);
31
+ const backdropOpacity = (0, _reactNativeReanimated.useSharedValue)(0);
32
+ const contentOpacity = (0, _reactNativeReanimated.useSharedValue)(0);
33
+ const modalContentTranslateY = (0, _reactNativeReanimated.useSharedValue)(0);
34
+ const scrollY = (0, _reactNativeReanimated.useSharedValue)(0);
35
+ const scrollActive = (0, _reactNativeReanimated.useSharedValue)(false);
36
+ const inverted = (0, _reactNativeReanimated.useSharedValue)(false);
37
+ const maxScrollOffset = (0, _reactNativeReanimated.useSharedValue)(0);
38
+ const scrollableComponentRef = (0, _react.useRef)(null);
39
+ const disableLayoutAnimation = (0, _react.useRef)(false);
40
+ const setDisableLayoutAnimation = (0, _react.useCallback)(bool => {
41
+ disableLayoutAnimation.current = bool;
42
+ }, []);
43
+ const backdropOpacityStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
44
+ opacity: backdropOpacity.value
45
+ }));
46
+ const contentOpacityStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
47
+ opacity: contentOpacity.value
48
+ }));
49
+ const modalContentAnimatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
50
+ transform: [{
51
+ translateY: modalContentTranslateY.value
52
+ }]
53
+ }));
54
+ const {
55
+ dragAnimatedStyle,
56
+ onDrag,
57
+ onDragStart
58
+ } = (0, _dragAnimation.useDragAnimation)({
59
+ translationX,
60
+ translationY,
61
+ prevTranslationY
62
+ });
63
+ const {
64
+ closeModal,
65
+ animateModalOpen,
66
+ animateModalClose,
67
+ animateToPercentage,
68
+ animateToSnapPointIndex,
69
+ onModalBackdropPress,
70
+ onModalContentLayout,
71
+ onPlatformViewLayout,
72
+ onRequestClose
73
+ } = (0, _callbacksController.callbackController)({
74
+ utils,
75
+ unMounter: props._unMounter,
76
+ snapPoints,
77
+ modalState,
78
+ translationX,
79
+ translationY,
80
+ onBackDropPress: props.onBackDropPress,
81
+ backdropOpacity,
82
+ closedYPosition,
83
+ currentSnapPoint,
84
+ prevTranslationY,
85
+ fullyOpenYPosition,
86
+ disableLayoutAnimation,
87
+ setDisableLayoutAnimation,
88
+ onSnapPointReach: props.onSnapPointReach,
89
+ disableCloseOnBackdropPress: props.disableCloseOnBackdropPress,
90
+ setShowModal: props.setShowModal
91
+ });
92
+ const [modalDimensionsStyle, setModalDimensionsStyle] = (0, _react.useState)({
93
+ width: utils.screenWidth,
94
+ height: utils.modalHeight,
95
+ bottom: utils.modalBottomOffset
96
+ });
97
+ (0, _react.useEffect)(() => {
98
+ const percentToSnapPoint = p => {
99
+ const percentage = (0, _reactNativeEssentials.strToNumPercentage)(p);
100
+ return {
101
+ percentage: percentage / 100,
102
+ offset: -(utils.relativeY(percentage) + utils.extraHeight)
103
+ };
104
+ };
105
+ const newSnapPoints = (props.snapPoints || []).map(p => percentToSnapPoint(p));
106
+ snapPoints.value = newSnapPoints;
107
+ setModalDimensionsStyle({
108
+ height: utils.modalHeight,
109
+ bottom: -utils.modalHeight * 2,
110
+ width: utils.relativeX(100)
111
+ });
112
+ if (newSnapPoints.length) {
113
+ const {
114
+ firstSnapPoint,
115
+ maxSnapPoint,
116
+ minSnapPoint
117
+ } = utils.getMaxMinSnapPoints(newSnapPoints);
118
+ currentSnapPoint.value = firstSnapPoint;
119
+ fullyOpenYPosition.value = maxSnapPoint;
120
+ lowestSnapPointPosition.value = minSnapPoint;
121
+ setTimeout(() => {
122
+ if (!modalState.current || modalState.current === _bottomSheetTypes.ModalState.CLOSING) return;
123
+ animateToSnapPointIndex(0);
124
+ }, 500);
125
+ }
126
+ }, [utils.orientation]);
127
+ const {
128
+ onDragEndGesture,
129
+ onDragGesture,
130
+ onDragStartGesture
131
+ } = (0, _dragAnimationController.dragAnimationController)({
132
+ onDrag,
133
+ onDragStart,
134
+ closeModal,
135
+ snapPoints,
136
+ currentSnapPoint,
137
+ keyboardHeight,
138
+ translationY,
139
+ prevTranslationY,
140
+ closedYPosition,
141
+ fullyOpenYPosition,
142
+ backdropOpacity,
143
+ keepMounted: props.keepMounted,
144
+ onSnapPointReach: props.onSnapPointReach,
145
+ lowestSnapPointPosition,
146
+ allowDragWhileKeyboardVisible: props.allowDragWhileKeyboardVisible
147
+ });
148
+ (0, _keyboardAnimationController.keyboardAnimationController)({
149
+ keyboardHeight,
150
+ translationY,
151
+ screenHeight: utils.screenHeight,
152
+ prevTranslationY,
153
+ modalContentTranslateY,
154
+ setDisableLayoutAnimation,
155
+ avoidKeyboard: props.avoidKeyboard,
156
+ inputsForKeyboardToAvoid: props.inputsForKeyboardToAvoid
157
+ });
158
+ const {
159
+ onBeginScroll,
160
+ onUpdateScroll,
161
+ onEndScroll
162
+ } = (0, _scrollContentController.scrollContentController)({
163
+ scrollableComponentRef,
164
+ onDragStartGesture,
165
+ onDragGesture,
166
+ onDragEndGesture,
167
+ maxScrollOffset,
168
+ scrollActive,
169
+ inverted,
170
+ scrollY
171
+ });
172
+ (0, _react.useEffect)(() => {
173
+ const animateContentDelay = () => {
174
+ if (props.showContentDelay) {
175
+ setTimeout(() => {
176
+ contentOpacity.value = (0, _reactNativeReanimated.withTiming)(1, {
177
+ duration: 500
178
+ });
179
+ }, props.showContentDelay.timeInMilliSecs);
180
+ }
181
+ };
182
+ if (props.showModal === undefined) animateContentDelay();else if (!props.showModal && !disableLayoutAnimation.current) {
183
+ setDisableLayoutAnimation(true);
184
+ (0, _reactNativeReanimated.runOnUI)(animateModalClose)();
185
+ } else if (props.showModal) animateContentDelay();
186
+ }, [props.showModal]);
187
+ return {
188
+ modalState,
189
+ scrollY,
190
+ inverted,
191
+ onEndScroll,
192
+ onBeginScroll,
193
+ onUpdateScroll,
194
+ maxScrollOffset,
195
+ scrollableComponentRef,
196
+ disableLayoutAnimation,
197
+ animateModalOpen,
198
+ animateModalClose,
199
+ animateToPercentage,
200
+ animateToSnapPointIndex,
201
+ onDragGesture,
202
+ onDragStartGesture,
203
+ onDragEndGesture,
204
+ onPlatformViewLayout,
205
+ onModalContentLayout,
206
+ onRequestClose,
207
+ onModalBackdropPress,
208
+ dragAnimatedStyle,
209
+ modalContentAnimatedStyle,
210
+ backdropOpacityStyle,
211
+ contentOpacityStyle,
212
+ modalDimensionsStyle,
213
+ screenHeight: utils.screenHeight
214
+ };
215
+ }
216
+ //# sourceMappingURL=bottomSheet.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_dragAnimation","require","_reactNativeReanimated","_react","_bottomSheetTypes","_keyboardAnimationController","_dragAnimationController","_callbacksController","_scrollContentController","_reactNativeEssentials","_useBottomSheetUtils","bottomSheetController","props","utils","useBottomSheetUtils","modalState","useRef","ModalState","CLOSED","fullyOpenYPosition","useSharedValue","lowestSnapPointPosition","closedYPosition","currentSnapPoint","offset","snapPoints","map","p","percentageToSnapPoint","translationX","translationY","prevTranslationY","keyboardHeight","backdropOpacity","contentOpacity","modalContentTranslateY","scrollY","scrollActive","inverted","maxScrollOffset","scrollableComponentRef","disableLayoutAnimation","setDisableLayoutAnimation","useCallback","bool","current","backdropOpacityStyle","useAnimatedStyle","opacity","value","contentOpacityStyle","modalContentAnimatedStyle","transform","translateY","dragAnimatedStyle","onDrag","onDragStart","useDragAnimation","closeModal","animateModalOpen","animateModalClose","animateToPercentage","animateToSnapPointIndex","onModalBackdropPress","onModalContentLayout","onPlatformViewLayout","onRequestClose","callbackController","unMounter","_unMounter","onBackDropPress","onSnapPointReach","disableCloseOnBackdropPress","setShowModal","modalDimensionsStyle","setModalDimensionsStyle","useState","width","screenWidth","height","modalHeight","bottom","modalBottomOffset","useEffect","percentToSnapPoint","percentage","strToNumPercentage","relativeY","extraHeight","newSnapPoints","relativeX","length","firstSnapPoint","maxSnapPoint","minSnapPoint","getMaxMinSnapPoints","setTimeout","CLOSING","orientation","onDragEndGesture","onDragGesture","onDragStartGesture","dragAnimationController","keepMounted","allowDragWhileKeyboardVisible","keyboardAnimationController","screenHeight","avoidKeyboard","inputsForKeyboardToAvoid","onBeginScroll","onUpdateScroll","onEndScroll","scrollContentController","animateContentDelay","showContentDelay","withTiming","duration","timeInMilliSecs","showModal","undefined","runOnUI"],"sourceRoot":"../../../../src","sources":["BottomSheet/controller/bottomSheet.controller.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.callbackController = callbackController;
7
+ var _reactNativeReanimated = require("react-native-reanimated");
8
+ var _react = require("react");
9
+ var _bottomSheetConstants = require("../config/bottomSheet.constants.js");
10
+ var _bottomSheetTypes = require("../config/bottomSheet.types.js");
11
+ //$lf-ignore
12
+
13
+ function callbackController(props) {
14
+ const {
15
+ unMounter,
16
+ snapPoints,
17
+ modalState,
18
+ backdropOpacity,
19
+ translationX,
20
+ translationY,
21
+ onBackDropPress,
22
+ closedYPosition,
23
+ currentSnapPoint,
24
+ prevTranslationY,
25
+ onSnapPointReach,
26
+ fullyOpenYPosition,
27
+ disableLayoutAnimation,
28
+ disableCloseOnBackdropPress
29
+ } = props;
30
+ const {
31
+ orientation,
32
+ getMaxMinSnapPointsWorklet,
33
+ percentageToSnapPointWorklet
34
+ } = props.utils;
35
+ const setModalState = (0, _react.useCallback)(state => {
36
+ if (modalState.current === _bottomSheetTypes.ModalState.CLOSING && state !== _bottomSheetTypes.ModalState.CLOSED) return;
37
+ modalState.current = state;
38
+ }, []);
39
+ const animateModalOpen = (0, _react.useCallback)((height, modalHeight) => {
40
+ 'worklet';
41
+
42
+ if (height > modalHeight) height = modalHeight;
43
+ const translateYHeight = -height;
44
+ translationY.value = (0, _reactNativeReanimated.withTiming)(translateYHeight, _bottomSheetConstants.animateOpenTimingConfig, () => {
45
+ prevTranslationY.value = translateYHeight;
46
+ (0, _reactNativeReanimated.runOnJS)(setModalState)(_bottomSheetTypes.ModalState.OPEN);
47
+ });
48
+ if (snapPoints.value.length) {
49
+ let maxOpenPosition = fullyOpenYPosition.value;
50
+ if (!maxOpenPosition) maxOpenPosition = getMaxMinSnapPointsWorklet(snapPoints).maxSnapPoint;
51
+ backdropOpacity.value = (0, _reactNativeReanimated.withTiming)(translateYHeight / maxOpenPosition, _bottomSheetConstants.animateOpenTimingConfig);
52
+ } else backdropOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _bottomSheetConstants.animateOpenTimingConfig);
53
+ }, [orientation]);
54
+ const animateModalClose = (0, _react.useCallback)(prop => {
55
+ 'worklet';
56
+
57
+ const timing = {
58
+ duration: prop?.duration || _bottomSheetConstants.animateCloseTimingConfig.duration,
59
+ easing: prop?.easing || _bottomSheetConstants.animateCloseTimingConfig.easing
60
+ };
61
+ translationY.value = (0, _reactNativeReanimated.withTiming)(closedYPosition.value, timing);
62
+ backdropOpacity.value = (0, _reactNativeReanimated.withTiming)(0, timing);
63
+ }, []);
64
+ const onPlatformViewLayout = (0, _react.useCallback)(e => {
65
+ translationX.value = -e.nativeEvent.layout.x;
66
+ }, []);
67
+ const animateToSnapPoint = (0, _react.useCallback)((snapPoint, index) => {
68
+ 'worklet';
69
+
70
+ if (!snapPoint) return;
71
+ currentSnapPoint.value = {
72
+ offset: snapPoint.offset
73
+ };
74
+ translationY.value = (0, _reactNativeReanimated.withTiming)(snapPoint.offset, _bottomSheetConstants.modalTransitionTimingConfig, () => {
75
+ typeof index === 'number' && onSnapPointReach && (0, _reactNativeReanimated.runOnJS)(onSnapPointReach)(index);
76
+ });
77
+ backdropOpacity.value = (0, _reactNativeReanimated.withTiming)(snapPoint.offset / fullyOpenYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig);
78
+ }, []);
79
+ const animateToSnapPointIndex = (0, _react.useCallback)(snapPointIndex => {
80
+ 'worklet';
81
+
82
+ const snapPoint = snapPoints.value[snapPointIndex];
83
+ animateToSnapPoint(snapPoint, snapPointIndex);
84
+ }, []);
85
+ const animateToPercentage = (0, _react.useCallback)((percentage, screenHeight) => {
86
+ 'worklet';
87
+
88
+ const snapPoint = percentageToSnapPointWorklet(percentage, screenHeight);
89
+ animateToSnapPoint(snapPoint);
90
+ }, [orientation]);
91
+ const onModalContentLayout = (0, _react.useCallback)(e => {
92
+ if (modalState.current === _bottomSheetTypes.ModalState.OPENING) return;
93
+ if (!modalState.current) setModalState(_bottomSheetTypes.ModalState.OPENING);
94
+ if (snapPoints.value.length && modalState.current === _bottomSheetTypes.ModalState.OPEN) return;
95
+ if (!snapPoints.value.length) {
96
+ if (e.nativeEvent.layout.height > props.utils.modalHeight) fullyOpenYPosition.value = -props.utils.modalHeight;else fullyOpenYPosition.value = -e.nativeEvent.layout.height;
97
+ }
98
+ if (!disableLayoutAnimation.current) (0, _reactNativeReanimated.runOnUI)(animateModalOpen)(Math.abs(snapPoints.value[0]?.offset || e.nativeEvent.layout.height), props.utils.modalHeight);
99
+ }, [orientation]);
100
+ const closeModal = (0, _react.useCallback)(delayMS => {
101
+ setModalState(_bottomSheetTypes.ModalState.CLOSING);
102
+ delayMS ? setTimeout(() => props.setShowModal ? props.setShowModal(false) : unMounter?.(), delayMS) : props.setShowModal ? props.setShowModal(false) : unMounter?.();
103
+ props.setDisableLayoutAnimation(true);
104
+ setTimeout(() => {
105
+ setModalState(_bottomSheetTypes.ModalState.CLOSED);
106
+ }, delayMS || _bottomSheetConstants.animateCloseTimingConfig.duration);
107
+ }, [unMounter]);
108
+ const onModalBackdropPress = (0, _react.useCallback)(() => {
109
+ onBackDropPress?.();
110
+ if (disableCloseOnBackdropPress) return;
111
+ closeModal();
112
+ (0, _reactNativeReanimated.runOnUI)(animateModalClose)();
113
+ }, []);
114
+ const onRequestClose = (0, _react.useCallback)(() => {
115
+ disableLayoutAnimation.current = true;
116
+ (0, _reactNativeReanimated.runOnUI)(animateModalClose)();
117
+ if (props.setShowModal) {
118
+ props.setShowModal(false);
119
+ } else {
120
+ props.unMounter?.();
121
+ }
122
+ }, []);
123
+ return {
124
+ closeModal,
125
+ animateModalOpen,
126
+ animateModalClose,
127
+ animateToPercentage,
128
+ animateToSnapPointIndex,
129
+ onRequestClose,
130
+ onPlatformViewLayout,
131
+ onModalContentLayout,
132
+ onModalBackdropPress
133
+ };
134
+ }
135
+ //# sourceMappingURL=callbacks.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeReanimated","require","_react","_bottomSheetConstants","_bottomSheetTypes","callbackController","props","unMounter","snapPoints","modalState","backdropOpacity","translationX","translationY","onBackDropPress","closedYPosition","currentSnapPoint","prevTranslationY","onSnapPointReach","fullyOpenYPosition","disableLayoutAnimation","disableCloseOnBackdropPress","orientation","getMaxMinSnapPointsWorklet","percentageToSnapPointWorklet","utils","setModalState","useCallback","state","current","ModalState","CLOSING","CLOSED","animateModalOpen","height","modalHeight","translateYHeight","value","withTiming","animateOpenTimingConfig","runOnJS","OPEN","length","maxOpenPosition","maxSnapPoint","animateModalClose","prop","timing","duration","animateCloseTimingConfig","easing","onPlatformViewLayout","e","nativeEvent","layout","x","animateToSnapPoint","snapPoint","index","offset","modalTransitionTimingConfig","animateToSnapPointIndex","snapPointIndex","animateToPercentage","percentage","screenHeight","onModalContentLayout","OPENING","runOnUI","Math","abs","closeModal","delayMS","setTimeout","setShowModal","setDisableLayoutAnimation","onModalBackdropPress","onRequestClose"],"sourceRoot":"../../../../src","sources":["BottomSheet/controller/callbacks.controller.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.dragAnimationController = dragAnimationController;
7
+ var _reactNativeReanimated = require("react-native-reanimated");
8
+ var _react = require("react");
9
+ var _bottomSheetConstants = require("../config/bottomSheet.constants.js");
10
+ //$lf-ignore
11
+
12
+ function dragAnimationController(props) {
13
+ const {
14
+ snapPoints,
15
+ currentSnapPoint,
16
+ allowDragWhileKeyboardVisible,
17
+ keyboardHeight,
18
+ backdropOpacity,
19
+ closeModal,
20
+ keepMounted,
21
+ closedYPosition,
22
+ onSnapPointReach,
23
+ onDragStart,
24
+ lowestSnapPointPosition,
25
+ translationY,
26
+ prevTranslationY,
27
+ fullyOpenYPosition
28
+ } = props;
29
+ // Gesture event handlers
30
+ const onDragStartGesture = (0, _react.useCallback)(() => {
31
+ 'worklet';
32
+
33
+ if (keyboardHeight.value && !allowDragWhileKeyboardVisible) return;
34
+ onDragStart();
35
+ }, []);
36
+ const onDragGesture = (0, _react.useCallback)(e => {
37
+ 'worklet';
38
+
39
+ if (keyboardHeight.value && !allowDragWhileKeyboardVisible) return;
40
+ const val = prevTranslationY.value + e.translationY;
41
+ const stretch = 100;
42
+ translationY.value = val >= fullyOpenYPosition.value ? val : fullyOpenYPosition.value - stretch + stretch / ((fullyOpenYPosition.value - val) / stretch + 1);
43
+ if (snapPoints.value.length) backdropOpacity.value = -(currentSnapPoint.value.offset + e.translationY) / -fullyOpenYPosition.value;else {
44
+ if (prevTranslationY.value === fullyOpenYPosition.value) backdropOpacity.value = -(e.translationY + fullyOpenYPosition.value) / -fullyOpenYPosition.value;else if (e.translationY < 0) backdropOpacity.value = e.translationY / -fullyOpenYPosition.value;
45
+ }
46
+ }, []);
47
+ const onDragEndGesture = (0, _react.useCallback)(e => {
48
+ 'worklet';
49
+
50
+ if (keyboardHeight.value && !allowDragWhileKeyboardVisible) return;
51
+ const animate = (to, timing, opacity, index) => {
52
+ translationY.value = (0, _reactNativeReanimated.withTiming)(to, timing, () => {
53
+ typeof index === 'number' && onSnapPointReach && (0, _reactNativeReanimated.runOnJS)(onSnapPointReach)(index);
54
+ });
55
+ backdropOpacity.value = (0, _reactNativeReanimated.withTiming)(opacity, _bottomSheetConstants.modalTransitionTimingConfig);
56
+ };
57
+ if (snapPoints.value.length) {
58
+ const fullyOpenIndex = snapPoints.value.length - 1;
59
+ if (e.velocityY > 1500) {
60
+ if (currentSnapPoint.value.offset === lowestSnapPointPosition.value && !keepMounted) {
61
+ animate(closedYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 0);
62
+ return (0, _reactNativeReanimated.runOnJS)(closeModal)(175);
63
+ }
64
+ if (e.velocityY > 3500 && !keepMounted) {
65
+ animate(closedYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 0);
66
+ return (0, _reactNativeReanimated.runOnJS)(closeModal)(175);
67
+ }
68
+ if (e.velocityY > 1500) {
69
+ animate(lowestSnapPointPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, lowestSnapPointPosition.value / fullyOpenYPosition.value, 0);
70
+ currentSnapPoint.value = {
71
+ offset: lowestSnapPointPosition.value
72
+ };
73
+ return;
74
+ }
75
+ } else if (e.velocityY < -1500) {
76
+ animate(fullyOpenYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 1, fullyOpenIndex);
77
+ currentSnapPoint.value = {
78
+ offset: fullyOpenYPosition.value
79
+ };
80
+ return;
81
+ }
82
+ let closestSnapPointValue = Math.abs(currentSnapPoint.value.offset + e.translationY + 100);
83
+ let closestSnapPointOffset = 0;
84
+ let closestSnapPointIndex = 0;
85
+ for (let i = 0; i < snapPoints.value.length; i++) {
86
+ const snapPoint = snapPoints.value[i];
87
+ if (!snapPoint) return animate(fullyOpenYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 1, fullyOpenIndex);
88
+ const currSnapPointValue = Math.abs(currentSnapPoint.value.offset + e.translationY - snapPoint.offset);
89
+ if (currSnapPointValue < closestSnapPointValue) {
90
+ closestSnapPointValue = currSnapPointValue;
91
+ closestSnapPointOffset = snapPoint.offset;
92
+ closestSnapPointIndex = i;
93
+ }
94
+ }
95
+ if (closestSnapPointOffset) {
96
+ currentSnapPoint.value = {
97
+ offset: closestSnapPointOffset
98
+ };
99
+ return animate(closestSnapPointOffset, _bottomSheetConstants.modalTransitionTimingConfig, closestSnapPointOffset / fullyOpenYPosition.value, closestSnapPointIndex);
100
+ }
101
+ if (!keepMounted) {
102
+ (0, _reactNativeReanimated.runOnJS)(closeModal)(175);
103
+ return animate(closedYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 0);
104
+ } else return animate(lowestSnapPointPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, lowestSnapPointPosition.value / fullyOpenYPosition.value, 0);
105
+ }
106
+ const halfContentHeight = -(fullyOpenYPosition.value / 2);
107
+ const isClosed = prevTranslationY.value === closedYPosition.value;
108
+ const isMovedPastHalf = Math.abs(e.translationY) > halfContentHeight;
109
+ const isHighVelocity = isClosed ? e.velocityY < -1000 : e.velocityY > 1000;
110
+ if (isClosed) {
111
+ if (e.translationY > 50 || isMovedPastHalf) animate(fullyOpenYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 1);else if (isHighVelocity) animate(fullyOpenYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 1);else animate(closedYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 0);
112
+ return;
113
+ }
114
+ if (isMovedPastHalf || isHighVelocity) {
115
+ if (e.velocityY > 1000) animate(closedYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 0);else animate(closedYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 0);
116
+ (0, _reactNativeReanimated.runOnJS)(closeModal)(175);
117
+ } else if (e.translationY <= halfContentHeight) {
118
+ animate(fullyOpenYPosition.value, _bottomSheetConstants.modalTransitionTimingConfig, 1);
119
+ }
120
+ }, []);
121
+ return {
122
+ onDragGesture,
123
+ onDragEndGesture,
124
+ onDragStartGesture
125
+ };
126
+ }
127
+ //# sourceMappingURL=dragAnimation.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeReanimated","require","_react","_bottomSheetConstants","dragAnimationController","props","snapPoints","currentSnapPoint","allowDragWhileKeyboardVisible","keyboardHeight","backdropOpacity","closeModal","keepMounted","closedYPosition","onSnapPointReach","onDragStart","lowestSnapPointPosition","translationY","prevTranslationY","fullyOpenYPosition","onDragStartGesture","useCallback","value","onDragGesture","e","val","stretch","length","offset","onDragEndGesture","animate","to","timing","opacity","index","withTiming","runOnJS","modalTransitionTimingConfig","fullyOpenIndex","velocityY","closestSnapPointValue","Math","abs","closestSnapPointOffset","closestSnapPointIndex","i","snapPoint","currSnapPointValue","halfContentHeight","isClosed","isMovedPastHalf","isHighVelocity"],"sourceRoot":"../../../../src","sources":["BottomSheet/controller/dragAnimation.controller.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBottomSheetRef = useBottomSheetRef;
7
+ var _react = require("react");
8
+ var _bottomSheetConstants = require("../../config/bottomSheet.constants.js");
9
+ function useBottomSheetRef({
10
+ ref,
11
+ showModal,
12
+ setShowModal
13
+ }) {
14
+ const mounterRef = (0, _react.useRef)(null);
15
+ const sheetRef = (0, _react.useRef)(null);
16
+ const modalRef = (0, _react.useMemo)(() => {
17
+ const hasState = setShowModal && typeof showModal === 'boolean';
18
+ return {
19
+ getModalState: () => sheetRef.current?.getModalState(),
20
+ openModal: openModalProps => {
21
+ if (hasState && !openModalProps?.onOpen) setShowModal(true);else mounterRef.current?.mountComponent(openModalProps);
22
+ },
23
+ closeModal: closeModalProps => {
24
+ if (closeModalProps?.skipAnimation) {
25
+ mounterRef.current?.hardUnMountComponent(closeModalProps);
26
+ hasState && setShowModal(false);
27
+ return;
28
+ }
29
+ if (closeModalProps?.isNavigating) {
30
+ const closeProps = {
31
+ duration: closeModalProps.duration || 100,
32
+ easing: closeModalProps?.easing,
33
+ onClose: closeModalProps?.onClose
34
+ };
35
+ sheetRef.current?.animateCloseModal(closeProps);
36
+ mounterRef.current?.unMountComponent(closeProps);
37
+ if (hasState) setTimeout(() => setShowModal(false), closeProps.duration);
38
+ return;
39
+ }
40
+ if (hasState && !closeModalProps?.duration && !closeModalProps?.onClose) return setShowModal(false);
41
+ sheetRef.current?.animateCloseModal(closeModalProps);
42
+ mounterRef.current?.unMountComponent(closeModalProps);
43
+ if (hasState) setTimeout(() => setShowModal(false), _bottomSheetConstants.animateCloseTimingConfig.duration);
44
+ },
45
+ closeWithoutAnimation: () => {
46
+ mounterRef.current?.hardUnMountComponent();
47
+ hasState && setShowModal(false);
48
+ },
49
+ snapToIndex: index => sheetRef.current?.snapToIndex(index),
50
+ snapToPercentage: percentage => sheetRef.current?.snapToPercentage(percentage)
51
+ };
52
+ }, []);
53
+ (0, _react.useImperativeHandle)(ref, () => modalRef, []);
54
+ return {
55
+ mounterRef,
56
+ sheetRef,
57
+ modalRef
58
+ };
59
+ }
60
+ //# sourceMappingURL=useBottomSheetRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_bottomSheetConstants","useBottomSheetRef","ref","showModal","setShowModal","mounterRef","useRef","sheetRef","modalRef","useMemo","hasState","getModalState","current","openModal","openModalProps","onOpen","mountComponent","closeModal","closeModalProps","skipAnimation","hardUnMountComponent","isNavigating","closeProps","duration","easing","onClose","animateCloseModal","unMountComponent","setTimeout","animateCloseTimingConfig","closeWithoutAnimation","snapToIndex","index","snapToPercentage","percentage","useImperativeHandle"],"sourceRoot":"../../../../../src","sources":["BottomSheet/controller/hooks/useBottomSheetRef.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQA,IAAAC,qBAAA,GAAAD,OAAA;AAMO,SAASE,iBAAiBA,CAAC;EAChCC,GAAG;EACHC,SAAS;EACTC;AACsB,CAAC,EAAE;EACzB,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAAoC,IAAI,CAAC;EAClE,MAAMC,QAAQ,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EACpD,MAAME,QAAwB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC7C,MAAMC,QAAQ,GAAGN,YAAY,IAAI,OAAOD,SAAS,KAAK,SAAS;IAC/D,OAAO;MACLQ,aAAa,EAAEA,CAAA,KAAMJ,QAAQ,CAACK,OAAO,EAAED,aAAa,CAAC,CAAC;MACtDE,SAAS,EAAGC,cAAc,IAAK;QAC7B,IAAIJ,QAAQ,IAAI,CAACI,cAAc,EAAEC,MAAM,EAAEX,YAAY,CAAC,IAAI,CAAC,CAAC,KACvDC,UAAU,CAACO,OAAO,EAAEI,cAAc,CAACF,cAAc,CAAC;MACzD,CAAC;MACDG,UAAU,EAAGC,eAAe,IAAK;QAC/B,IAAIA,eAAe,EAAEC,aAAa,EAAE;UAClCd,UAAU,CAACO,OAAO,EAAEQ,oBAAoB,CAACF,eAAe,CAAC;UACzDR,QAAQ,IAAIN,YAAY,CAAC,KAAK,CAAC;UAC/B;QACF;QACA,IAAIc,eAAe,EAAEG,YAAY,EAAE;UACjC,MAAMC,UAAU,GAAG;YACjBC,QAAQ,EAAEL,eAAe,CAACK,QAAQ,IAAI,GAAG;YACzCC,MAAM,EAAEN,eAAe,EAAEM,MAAM;YAC/BC,OAAO,EAAEP,eAAe,EAAEO;UAC5B,CAAC;UACDlB,QAAQ,CAACK,OAAO,EAAEc,iBAAiB,CAACJ,UAAU,CAAC;UAC/CjB,UAAU,CAACO,OAAO,EAAEe,gBAAgB,CAACL,UAAU,CAAC;UAChD,IAAIZ,QAAQ,EACVkB,UAAU,CAAC,MAAMxB,YAAY,CAAC,KAAK,CAAC,EAAEkB,UAAU,CAACC,QAAQ,CAAC;UAC5D;QACF;QACA,IAAIb,QAAQ,IAAI,CAACQ,eAAe,EAAEK,QAAQ,IAAI,CAACL,eAAe,EAAEO,OAAO,EACrE,OAAOrB,YAAY,CAAC,KAAK,CAAC;QAC5BG,QAAQ,CAACK,OAAO,EAAEc,iBAAiB,CAACR,eAAe,CAAC;QACpDb,UAAU,CAACO,OAAO,EAAEe,gBAAgB,CAACT,eAAe,CAAC;QACrD,IAAIR,QAAQ,EACVkB,UAAU,CACR,MAAMxB,YAAY,CAAC,KAAK,CAAC,EACzByB,8CAAwB,CAACN,QAC3B,CAAC;MACL,CAAC;MACDO,qBAAqB,EAAEA,CAAA,KAAM;QAC3BzB,UAAU,CAACO,OAAO,EAAEQ,oBAAoB,CAAC,CAAC;QAC1CV,QAAQ,IAAIN,YAAY,CAAC,KAAK,CAAC;MACjC,CAAC;MACD2B,WAAW,EAAGC,KAAK,IAAKzB,QAAQ,CAACK,OAAO,EAAEmB,WAAW,CAACC,KAAK,CAAC;MAC5DC,gBAAgB,EAAGC,UAAU,IAC3B3B,QAAQ,CAACK,OAAO,EAAEqB,gBAAgB,CAACC,UAAU;IACjD,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,IAAAC,0BAAmB,EAACjC,GAAG,EAAE,MAAMM,QAAQ,EAAE,EAAE,CAAC;EAC5C,OAAO;IACLH,UAAU;IACVE,QAAQ;IACRC;EACF,CAAC;AACH","ignoreList":[]}