@draftbit/core 46.11.1-a58bd6.2 → 46.11.1-c64d65.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.
Files changed (93) hide show
  1. package/lib/commonjs/components/Checkbox/CheckboxGroup.js +3 -16
  2. package/lib/commonjs/components/Checkbox/CheckboxGroup.js.map +1 -1
  3. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +5 -22
  4. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js.map +1 -1
  5. package/lib/commonjs/components/Checkbox/context.js +1 -1
  6. package/lib/commonjs/components/Checkbox/context.js.map +1 -1
  7. package/lib/commonjs/components/Checkbox/index.js.map +1 -1
  8. package/lib/commonjs/components/StepIndicator.js +57 -18
  9. package/lib/commonjs/components/TabView/TabView.js +14 -7
  10. package/lib/commonjs/index.js +0 -7
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/mappings/NativeBase/Layout.js +1 -1
  13. package/lib/commonjs/mappings/NativeBase/Layout.js.map +1 -1
  14. package/lib/commonjs/mappings/Table.js +3 -3
  15. package/lib/commonjs/mappings/Table.js.map +1 -1
  16. package/lib/module/components/ActionSheet/ActionSheetCancel.js.map +1 -1
  17. package/lib/module/components/ActionSheet/ActionSheetItem.js.map +1 -1
  18. package/lib/module/components/Banner.js +23 -4
  19. package/lib/module/components/Banner.js.map +1 -1
  20. package/lib/module/components/BottomSheet/BottomSheet.tsx.tmp +120 -0
  21. package/lib/module/components/BottomSheet/BottomSheetComponent.tsx.tmp +895 -0
  22. package/lib/module/components/Card.js.map +1 -1
  23. package/lib/module/components/CircleImage.js +15 -1
  24. package/lib/module/components/CircleImage.js.map +1 -1
  25. package/lib/module/components/Container.js +16 -4
  26. package/lib/module/components/Container.js.map +1 -1
  27. package/lib/module/components/DatePicker/DatePicker.js +9 -13
  28. package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
  29. package/lib/module/components/DatePicker/DatePickerComponent.web.js.map +1 -1
  30. package/lib/module/components/DeckSwiper/index.js.map +1 -1
  31. package/lib/module/components/Picker/PickerComponent.android.js +21 -3
  32. package/lib/module/components/Picker/PickerComponent.android.js.map +1 -1
  33. package/lib/module/components/Portal/PortalHost.js +44 -14
  34. package/lib/module/components/Portal/PortalHost.js.map +1 -1
  35. package/lib/module/components/ProgressCircle.js.map +1 -1
  36. package/lib/module/components/RadioButton/RadioButtonRow.js +23 -5
  37. package/lib/module/components/RadioButton/RadioButtonRow.js.map +1 -1
  38. package/lib/module/components/RadioButton/index.js.map +1 -1
  39. package/lib/module/components/Row.js.map +1 -1
  40. package/lib/module/components/RowBodyIcon.js.map +1 -1
  41. package/lib/module/components/Swiper/SwiperItem.js.map +1 -1
  42. package/lib/module/components/Touchable.web.js.map +1 -1
  43. package/lib/module/components/YoutubePlayer/YoutubePlayerProps.js.map +1 -1
  44. package/lib/module/index.js +0 -1
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/module/mappings/AccordionItem.js.map +1 -1
  47. package/lib/module/mappings/AudioPlayer.js.map +1 -1
  48. package/lib/module/mappings/CardInline.js.map +1 -1
  49. package/lib/module/mappings/DeckSwiper.js.map +1 -1
  50. package/lib/module/mappings/Divider.js.map +1 -1
  51. package/lib/module/mappings/FlashList.js.map +1 -1
  52. package/lib/module/mappings/NativeBase/Layout.js +1 -1
  53. package/lib/module/mappings/NativeBase/Layout.js.map +1 -1
  54. package/lib/module/mappings/ProgressIndicator.js.map +1 -1
  55. package/lib/module/mappings/RadioButtonGroup.js.map +1 -1
  56. package/lib/module/mappings/Table.js +3 -3
  57. package/lib/module/mappings/Table.js.map +1 -1
  58. package/lib/module/styles/shadow.js.map +1 -1
  59. package/lib/typescript/src/index.d.ts +0 -1
  60. package/lib/typescript/src/index.d.ts.map +1 -1
  61. package/package.json +3 -5
  62. package/src/components/BottomSheet/BottomSheet.tsx.tmp +120 -0
  63. package/src/components/BottomSheet/BottomSheetComponent.tsx.tmp +895 -0
  64. package/{lib/module/components/BottomSheet/index.js → src/components/BottomSheet/index.ts.tmp} +0 -1
  65. package/src/index.js +0 -1
  66. package/src/index.tsx +0 -2
  67. package/src/mappings/NativeBase/Layout.js +1 -1
  68. package/src/mappings/NativeBase/Layout.ts +1 -1
  69. package/src/mappings/Table.js +3 -3
  70. package/src/mappings/Table.ts +3 -3
  71. package/lib/commonjs/components/BottomSheet/BottomSheet.js +0 -89
  72. package/lib/commonjs/components/BottomSheet/BottomSheet.js.map +0 -1
  73. package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js +0 -424
  74. package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js.map +0 -1
  75. package/lib/commonjs/components/BottomSheet/index.js +0 -14
  76. package/lib/commonjs/components/BottomSheet/index.js.map +0 -1
  77. package/lib/module/components/BottomSheet/BottomSheet.js +0 -81
  78. package/lib/module/components/BottomSheet/BottomSheet.js.map +0 -1
  79. package/lib/module/components/BottomSheet/BottomSheetComponent.js +0 -430
  80. package/lib/module/components/BottomSheet/BottomSheetComponent.js.map +0 -1
  81. package/lib/module/components/BottomSheet/index.js.map +0 -1
  82. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts +0 -20
  83. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts.map +0 -1
  84. package/lib/typescript/src/components/BottomSheet/BottomSheetComponent.d.ts +0 -170
  85. package/lib/typescript/src/components/BottomSheet/BottomSheetComponent.d.ts.map +0 -1
  86. package/lib/typescript/src/components/BottomSheet/index.d.ts +0 -2
  87. package/lib/typescript/src/components/BottomSheet/index.d.ts.map +0 -1
  88. package/src/components/BottomSheet/BottomSheet.js +0 -56
  89. package/src/components/BottomSheet/BottomSheetComponent.js +0 -437
  90. /package/{src/components/BottomSheet/BottomSheet.tsx → lib/commonjs/components/BottomSheet/BottomSheet.tsx.tmp} +0 -0
  91. /package/{src/components/BottomSheet/BottomSheetComponent.tsx → lib/commonjs/components/BottomSheet/BottomSheetComponent.tsx.tmp} +0 -0
  92. /package/{src/components/BottomSheet/index.js → lib/commonjs/components/BottomSheet/index.ts.tmp} +0 -0
  93. /package/{src/components/BottomSheet/index.ts → lib/module/components/BottomSheet/index.ts.tmp} +0 -0
@@ -1,437 +0,0 @@
1
- /**
2
- * Slightly modfied version as taken from https://github.com/rgommezz/react-native-scroll-bottom-sheet
3
- * Main previously breaking change:
4
- * const node = this.props.innerRef.current?.getNode() ==> const node = this.props.innerRef.current as any
5
- */
6
- /**
7
- * Copyright (c) 2020 Raul Gomez Acuna
8
- *
9
- * This source code is licensed under the MIT license found in the
10
- * LICENSE file in the root directory of this source tree.
11
- *
12
- */
13
- import React, { Component } from "react";
14
- import { Dimensions, FlatList, Platform, ScrollView, SectionList, StyleSheet, View, } from "react-native";
15
- import Animated, { abs, add, and, call, Clock, clockRunning, cond, Easing as EasingDeprecated,
16
- // @ts-ignore: this property is only present in Reanimated 2
17
- EasingNode, eq, event, Extrapolate, greaterOrEq, greaterThan, multiply, not, onChange, or, set, startClock, stopClock, sub, spring, timing, Value, } from "react-native-reanimated";
18
- import { NativeViewGestureHandler, PanGestureHandler, State as GestureState, TapGestureHandler, } from "react-native-gesture-handler";
19
- const {
20
- //@ts-ignore
21
- interpolate: interpolateDeprecated,
22
- // @ts-ignore: this property is only present in Reanimated 2
23
- interpolateNode, } = Animated;
24
- const interpolate = interpolateNode !== null && interpolateNode !== void 0 ? interpolateNode : interpolateDeprecated;
25
- //@ts-ignore
26
- const Easing = EasingNode !== null && EasingNode !== void 0 ? EasingNode : EasingDeprecated;
27
- const FlatListComponentType = "FlatList";
28
- const ScrollViewComponentType = "ScrollView";
29
- const SectionListComponentType = "SectionList";
30
- const TimingAnimationType = "timing";
31
- const SpringAnimationType = "spring";
32
- const DEFAULT_SPRING_PARAMS = {
33
- damping: 50,
34
- mass: 0.3,
35
- stiffness: 121.6,
36
- overshootClamping: true,
37
- restSpeedThreshold: 0.3,
38
- restDisplacementThreshold: 0.3,
39
- };
40
- const { height: windowHeight } = Dimensions.get("window");
41
- const IOS_NORMAL_DECELERATION_RATE = 0.998;
42
- const ANDROID_NORMAL_DECELERATION_RATE = 0.985;
43
- const DEFAULT_ANIMATION_DURATION = 250;
44
- const DEFAULT_EASING = Easing.inOut(Easing.linear);
45
- const imperativeScrollOptions = {
46
- [FlatListComponentType]: {
47
- method: "scrollToIndex",
48
- args: {
49
- index: 0,
50
- viewPosition: 0,
51
- viewOffset: 1000,
52
- animated: true,
53
- },
54
- },
55
- [ScrollViewComponentType]: {
56
- method: "scrollTo",
57
- args: {
58
- x: 0,
59
- y: 0,
60
- animated: true,
61
- },
62
- },
63
- [SectionListComponentType]: {
64
- method: "scrollToLocation",
65
- args: {
66
- itemIndex: 0,
67
- sectionIndex: 0,
68
- viewPosition: 0,
69
- viewOffset: 1000,
70
- animated: true,
71
- },
72
- },
73
- };
74
- export class ScrollBottomSheet extends Component {
75
- constructor(props) {
76
- var _a;
77
- super(props);
78
- /**
79
- * Gesture Handler references
80
- */
81
- this.masterDrawer = React.createRef();
82
- this.drawerHandleRef = React.createRef();
83
- this.drawerContentRef = React.createRef();
84
- this.scrollComponentRef = React.createRef();
85
- /**
86
- * Flag to indicate imperative snapping
87
- */
88
- this.isManuallySetValue = new Value(0);
89
- /**
90
- * Manual snapping amount
91
- */
92
- this.manualYOffset = new Value(0);
93
- this.prevSnapIndex = -1;
94
- this.dragY = new Value(0);
95
- this.prevDragY = new Value(0);
96
- this.tempDestSnapPoint = new Value(0);
97
- this.isAndroid = new Value(Number(Platform.OS === "android"));
98
- this.animationClock = new Clock();
99
- this.animationPosition = new Value(0);
100
- this.animationFinished = new Value(0);
101
- this.animationFrameTime = new Value(0);
102
- this.velocityY = new Value(0);
103
- this.lastStartScrollY = new Value(0);
104
- this.destSnapPoint = new Value(0);
105
- this.dragWithHandle = new Value(0);
106
- this.scrollUpAndPullDown = new Value(0);
107
- this.convertPercentageToDp = (str) => (Number(str.split("%")[0]) * (windowHeight - this.props.topInset)) / 100;
108
- this.getNormalisedSnapPoints = () => {
109
- return this.props.snapPoints.map((p) => {
110
- if (typeof p === "string") {
111
- return this.convertPercentageToDp(p);
112
- }
113
- else if (typeof p === "number") {
114
- return p;
115
- }
116
- throw new Error(`Invalid type for value ${p}: ${typeof p}. It should be either a percentage string or a number`);
117
- });
118
- };
119
- this.getScrollComponent = () => {
120
- switch (this.props.componentType) {
121
- case "FlatList":
122
- return FlatList;
123
- case "ScrollView":
124
- return ScrollView;
125
- case "SectionList":
126
- return SectionList;
127
- default:
128
- throw new Error("Component type not supported: it should be one of `FlatList`, `ScrollView` or `SectionList`");
129
- }
130
- };
131
- this.snapTo = (index) => {
132
- const snapPoints = this.getNormalisedSnapPoints();
133
- this.isManuallySetValue.setValue(1);
134
- this.manualYOffset.setValue(snapPoints[index]);
135
- this.nextSnapIndex.setValue(index);
136
- };
137
- const { initialSnapIndex, animationType } = props;
138
- const animationDriver = animationType === "timing" ? 0 : 1;
139
- const animationDuration = (props.animationType === "timing" && ((_a = props.animationConfig) === null || _a === void 0 ? void 0 : _a.duration)) ||
140
- DEFAULT_ANIMATION_DURATION;
141
- const ScrollComponent = this.getScrollComponent();
142
- // @ts-ignore
143
- this.scrollComponent = Animated.createAnimatedComponent(ScrollComponent);
144
- const snapPoints = this.getNormalisedSnapPoints();
145
- const openPosition = snapPoints[0];
146
- const closedPosition = this.props.enableOverScroll
147
- ? windowHeight
148
- : snapPoints[snapPoints.length - 1];
149
- const initialSnap = snapPoints[initialSnapIndex];
150
- this.nextSnapIndex = new Value(initialSnapIndex);
151
- const initialDecelerationRate = Platform.select({
152
- android: props.initialSnapIndex === 0 ? ANDROID_NORMAL_DECELERATION_RATE : 0,
153
- ios: IOS_NORMAL_DECELERATION_RATE,
154
- });
155
- this.decelerationRate = new Value(initialDecelerationRate);
156
- //@ts-ignore
157
- const handleGestureState = new Value(-1);
158
- //@ts-ignore
159
- const handleOldGestureState = new Value(-1);
160
- //@ts-ignore
161
- const drawerGestureState = new Value(-1);
162
- //@ts-ignore
163
- const drawerOldGestureState = new Value(-1);
164
- const lastSnapInRange = new Value(1);
165
- this.prevTranslateYOffset = new Value(initialSnap);
166
- this.translationY = new Value(initialSnap);
167
- this.lastSnap = new Value(initialSnap);
168
- this.onHandleGestureEvent = event([
169
- {
170
- nativeEvent: {
171
- translationY: this.dragY,
172
- oldState: handleOldGestureState,
173
- state: handleGestureState,
174
- velocityY: this.velocityY,
175
- },
176
- },
177
- ]);
178
- this.onDrawerGestureEvent = event([
179
- {
180
- nativeEvent: {
181
- translationY: this.dragY,
182
- oldState: drawerOldGestureState,
183
- state: drawerGestureState,
184
- velocityY: this.velocityY,
185
- },
186
- },
187
- ]);
188
- this.onScrollBeginDrag = event([
189
- {
190
- nativeEvent: {
191
- contentOffset: { y: this.lastStartScrollY },
192
- },
193
- },
194
- ]);
195
- const didHandleGestureBegin = eq(handleGestureState, GestureState.ACTIVE);
196
- const isAnimationInterrupted = and(or(eq(handleGestureState, GestureState.BEGAN), eq(drawerGestureState, GestureState.BEGAN), and(eq(this.isAndroid, 0), eq(animationDriver, 1), or(eq(drawerGestureState, GestureState.ACTIVE), eq(handleGestureState, GestureState.ACTIVE)))), clockRunning(this.animationClock));
197
- this.didGestureFinish = or(and(eq(handleOldGestureState, GestureState.ACTIVE), eq(handleGestureState, GestureState.END)), and(eq(drawerOldGestureState, GestureState.ACTIVE), eq(drawerGestureState, GestureState.END)));
198
- // Function that determines if the last snap point is in the range {snapPoints}
199
- // In the case of interruptions in the middle of an animation, we'll get
200
- // lastSnap values outside the range
201
- const isLastSnapPointInRange = (i = 0) => i === snapPoints.length
202
- ? lastSnapInRange
203
- : cond(eq(this.lastSnap, snapPoints[i]), [set(lastSnapInRange, 1)], isLastSnapPointInRange(i + 1));
204
- const scrollY = [
205
- set(lastSnapInRange, 0),
206
- isLastSnapPointInRange(),
207
- cond(or(didHandleGestureBegin, and(this.isManuallySetValue, not(eq(this.manualYOffset, snapPoints[0])))), [set(this.dragWithHandle, 1), 0]),
208
- cond(
209
- // This is to account for a continuous scroll on the drawer from a snap point
210
- // Different than top, bringing the drawer to the top position, so that if we
211
- // change scroll direction without releasing the gesture, it doesn't pull down the drawer again
212
- and(eq(this.dragWithHandle, 1), greaterThan(snapPoints[0], add(this.lastSnap, this.dragY)), and(not(eq(this.lastSnap, snapPoints[0])), lastSnapInRange)), [
213
- set(this.lastSnap, snapPoints[0]),
214
- set(this.dragWithHandle, 0),
215
- this.lastStartScrollY,
216
- ], cond(eq(this.dragWithHandle, 1), 0, this.lastStartScrollY)),
217
- ];
218
- this.didScrollUpAndPullDown = cond(and(greaterOrEq(this.dragY, this.lastStartScrollY), greaterThan(this.lastStartScrollY, 0)), set(this.scrollUpAndPullDown, 1));
219
- this.setTranslationY = cond(and(not(this.dragWithHandle), not(greaterOrEq(this.dragY, this.lastStartScrollY))), set(this.translationY, sub(this.dragY, this.lastStartScrollY)), set(this.translationY, this.dragY));
220
- this.extraOffset = cond(eq(this.scrollUpAndPullDown, 1), this.lastStartScrollY, 0);
221
- const endOffsetY = add(this.lastSnap, this.translationY, multiply(1 - props.friction, this.velocityY));
222
- this.calculateNextSnapPoint = (i = 0) => i === snapPoints.length
223
- ? this.tempDestSnapPoint
224
- : cond(greaterThan(abs(sub(this.tempDestSnapPoint, endOffsetY)), abs(sub(add(snapPoints[i], this.extraOffset), endOffsetY))), [
225
- set(this.tempDestSnapPoint, add(snapPoints[i], this.extraOffset)),
226
- set(this.nextSnapIndex, i),
227
- this.calculateNextSnapPoint(i + 1),
228
- ], this.calculateNextSnapPoint(i + 1));
229
- const runAnimation = ({ clock, from, to, position, finished, velocity, frameTime, }) => {
230
- var _a;
231
- const state = {
232
- finished,
233
- velocity: new Value(0),
234
- position,
235
- time: new Value(0),
236
- frameTime,
237
- };
238
- const timingConfig = {
239
- duration: animationDuration,
240
- easing: (props.animationType === "timing" && ((_a = props.animationConfig) === null || _a === void 0 ? void 0 : _a.easing)) ||
241
- DEFAULT_EASING,
242
- toValue: new Value(0),
243
- };
244
- const springConfig = {
245
- ...DEFAULT_SPRING_PARAMS,
246
- ...((props.animationType === "spring" && props.animationConfig) || {}),
247
- toValue: new Value(0),
248
- };
249
- return [
250
- cond(and(not(clockRunning(clock)), not(eq(finished, 1))), [
251
- // If the clock isn't running, we reset all the animation params and start the clock
252
- set(state.finished, 0),
253
- set(state.velocity, velocity),
254
- set(state.time, 0),
255
- set(state.position, from),
256
- set(state.frameTime, 0),
257
- set(timingConfig.toValue, to),
258
- set(springConfig.toValue, to),
259
- startClock(clock),
260
- ]),
261
- // We run the step here that is going to update position
262
- cond(eq(animationDriver, 0),
263
- //@ts-ignore
264
- timing(clock, state, timingConfig), spring(clock, state, springConfig)),
265
- cond(state.finished, [
266
- call([this.nextSnapIndex], ([value]) => {
267
- var _a, _b;
268
- if (value !== this.prevSnapIndex) {
269
- (_b = (_a = this.props).onSettle) === null || _b === void 0 ? void 0 : _b.call(_a, value);
270
- }
271
- this.prevSnapIndex = value;
272
- }),
273
- // Resetting appropriate values
274
- set(drawerOldGestureState, GestureState.END),
275
- set(handleOldGestureState, GestureState.END),
276
- set(this.prevTranslateYOffset, state.position),
277
- cond(eq(this.scrollUpAndPullDown, 1), [
278
- set(this.prevTranslateYOffset, sub(this.prevTranslateYOffset, this.lastStartScrollY)),
279
- set(this.lastStartScrollY, 0),
280
- set(this.scrollUpAndPullDown, 0),
281
- ]),
282
- cond(eq(this.destSnapPoint, snapPoints[0]), [
283
- set(this.dragWithHandle, 0),
284
- ]),
285
- set(this.isManuallySetValue, 0),
286
- set(this.manualYOffset, 0),
287
- stopClock(clock),
288
- this.prevTranslateYOffset,
289
- ],
290
- // We made the block return the updated position,
291
- state.position),
292
- ];
293
- };
294
- const translateYOffset = cond(isAnimationInterrupted, [
295
- // set(prevTranslateYOffset, animationPosition) should only run if we are
296
- // interrupting an animation when the drawer is currently in a different
297
- // position than the top
298
- cond(or(this.dragWithHandle, greaterOrEq(abs(this.prevDragY), this.lastStartScrollY)), set(this.prevTranslateYOffset, this.animationPosition)),
299
- set(this.animationFinished, 1),
300
- set(this.translationY, 0),
301
- // Resetting appropriate values
302
- set(drawerOldGestureState, GestureState.END),
303
- set(handleOldGestureState, GestureState.END),
304
- // By forcing that frameTime exceeds duration, it has the effect of stopping the animation
305
- set(this.animationFrameTime, add(animationDuration, 1000)),
306
- set(this.velocityY, 0),
307
- stopClock(this.animationClock),
308
- this.prevTranslateYOffset,
309
- ], cond(or(this.didGestureFinish, this.isManuallySetValue, clockRunning(this.animationClock)), [
310
- runAnimation({
311
- clock: this.animationClock,
312
- from: cond(this.isManuallySetValue, this.prevTranslateYOffset, add(this.prevTranslateYOffset, this.translationY)),
313
- to: this.destSnapPoint,
314
- position: this.animationPosition,
315
- finished: this.animationFinished,
316
- frameTime: this.animationFrameTime,
317
- velocity: this.velocityY,
318
- }),
319
- ], [
320
- set(this.animationFrameTime, 0),
321
- set(this.animationFinished, 0),
322
- // @ts-ignore
323
- this.prevTranslateYOffset,
324
- ]));
325
- this.translateY = interpolate(add(translateYOffset, this.dragY, multiply(scrollY, -1)), {
326
- inputRange: [openPosition, closedPosition],
327
- outputRange: [openPosition, closedPosition],
328
- extrapolate: Extrapolate.CLAMP,
329
- });
330
- this.position = interpolate(this.translateY, {
331
- inputRange: [openPosition, snapPoints[snapPoints.length - 1]],
332
- outputRange: [1, 0],
333
- extrapolate: Extrapolate.CLAMP,
334
- });
335
- }
336
- render() {
337
- const { renderHandle, initialSnapIndex, containerStyle, ...rest } = this.props;
338
- const AnimatedScrollableComponent = this.scrollComponent;
339
- const normalisedSnapPoints = this.getNormalisedSnapPoints();
340
- const initialSnap = normalisedSnapPoints[initialSnapIndex];
341
- const Content = (React.createElement(Animated.View, { style: [
342
- StyleSheet.absoluteFillObject,
343
- containerStyle,
344
- // @ts-ignore
345
- {
346
- transform: [{ translateY: this.translateY }],
347
- },
348
- ] },
349
- React.createElement(PanGestureHandler, { ref: this.drawerHandleRef, shouldCancelWhenOutside: false, simultaneousHandlers: this.masterDrawer, onGestureEvent: this.onHandleGestureEvent, onHandlerStateChange: this.onHandleGestureEvent },
350
- React.createElement(Animated.View, null, renderHandle())),
351
- React.createElement(PanGestureHandler, { ref: this.drawerContentRef, simultaneousHandlers: [this.scrollComponentRef, this.masterDrawer], shouldCancelWhenOutside: false, onGestureEvent: this.onDrawerGestureEvent, onHandlerStateChange: this.onDrawerGestureEvent },
352
- React.createElement(Animated.View, { style: styles.container },
353
- React.createElement(NativeViewGestureHandler, { ref: this.scrollComponentRef, waitFor: this.masterDrawer, simultaneousHandlers: this.drawerContentRef },
354
- React.createElement(AnimatedScrollableComponent, { overScrollMode: "never", bounces: false, ...rest, ref: this.props.innerRef,
355
- // @ts-ignore
356
- decelerationRate: this.decelerationRate, onScrollBeginDrag: this.onScrollBeginDrag, scrollEventThrottle: 1, contentContainerStyle: [
357
- rest.contentContainerStyle,
358
- { paddingBottom: this.getNormalisedSnapPoints()[0] },
359
- ] })))),
360
- this.props.animatedPosition && (React.createElement(Animated.Code, { exec: onChange(this.position, set(this.props.animatedPosition, this.position)) })),
361
- React.createElement(Animated.Code, { exec: onChange(this.dragY, cond(not(eq(this.dragY, 0)), set(this.prevDragY, this.dragY))) }),
362
- React.createElement(Animated.Code, { exec: onChange(this.didGestureFinish, cond(this.didGestureFinish, [
363
- this.didScrollUpAndPullDown,
364
- this.setTranslationY,
365
- set(this.tempDestSnapPoint, add(normalisedSnapPoints[0], this.extraOffset)),
366
- set(this.nextSnapIndex, 0),
367
- set(this.destSnapPoint, this.calculateNextSnapPoint()),
368
- cond(and(greaterThan(this.dragY, this.lastStartScrollY), this.isAndroid, not(this.dragWithHandle)), call([], () => {
369
- var _a, _b;
370
- // This prevents the scroll glide from happening on Android when pulling down with inertia.
371
- // It's not perfect, but does the job for now
372
- const { method, args } = imperativeScrollOptions[this.props.componentType];
373
- // @ts-ignore
374
- const node = this.props.innerRef.current;
375
- if (node &&
376
- node[method] &&
377
- ((this.props.componentType === "FlatList" &&
378
- (((_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length) || 0) > 0) ||
379
- (this.props.componentType === "SectionList" &&
380
- this.props.sections.length > 0) ||
381
- this.props.componentType === "ScrollView")) {
382
- node[method](args);
383
- }
384
- })),
385
- set(this.dragY, 0),
386
- set(this.velocityY, 0),
387
- set(this.lastSnap, sub(this.destSnapPoint, cond(eq(this.scrollUpAndPullDown, 1), this.lastStartScrollY, 0))),
388
- call([this.lastSnap], ([value]) => {
389
- var _a, _b;
390
- // This is the TapGHandler trick
391
- // @ts-ignore
392
- (_b = (_a = this.masterDrawer) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.setNativeProps({
393
- maxDeltaY: value - this.getNormalisedSnapPoints()[0],
394
- });
395
- }),
396
- set(this.decelerationRate, cond(eq(this.isAndroid, 1), cond(eq(this.lastSnap, normalisedSnapPoints[0]), ANDROID_NORMAL_DECELERATION_RATE, 0), IOS_NORMAL_DECELERATION_RATE)),
397
- ])) }),
398
- React.createElement(Animated.Code, { exec: onChange(this.isManuallySetValue, [
399
- cond(this.isManuallySetValue, [
400
- set(this.destSnapPoint, this.manualYOffset),
401
- set(this.animationFinished, 0),
402
- set(this.lastSnap, this.manualYOffset),
403
- call([this.lastSnap], ([value]) => {
404
- var _a, _b;
405
- // This is the TapGHandler trick
406
- // @ts-ignore
407
- (_b = (_a = this.masterDrawer) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.setNativeProps({
408
- maxDeltaY: value - this.getNormalisedSnapPoints()[0],
409
- });
410
- }),
411
- ], [set(this.nextSnapIndex, 0)]),
412
- ]) })));
413
- // On Android, having an intermediary view with pointerEvents="box-none", breaks the
414
- // waitFor logic
415
- if (Platform.OS === "android") {
416
- return (React.createElement(TapGestureHandler, { maxDurationMs: 100000, ref: this.masterDrawer, maxDeltaY: initialSnap - this.getNormalisedSnapPoints()[0], shouldCancelWhenOutside: false }, Content));
417
- }
418
- // On iOS, We need to wrap the content on a view with PointerEvents box-none
419
- // So that we can start scrolling automatically when reaching the top without
420
- // Stopping the gesture
421
- return (React.createElement(TapGestureHandler, { maxDurationMs: 100000, ref: this.masterDrawer, maxDeltaY: initialSnap - this.getNormalisedSnapPoints()[0] },
422
- React.createElement(View, { style: StyleSheet.absoluteFillObject, pointerEvents: "box-none" }, Content)));
423
- }
424
- }
425
- ScrollBottomSheet.defaultProps = {
426
- topInset: 0,
427
- friction: 0.95,
428
- animationType: "timing",
429
- innerRef: React.createRef(),
430
- enableOverScroll: false,
431
- };
432
- export default ScrollBottomSheet;
433
- const styles = StyleSheet.create({
434
- container: {
435
- flex: 1,
436
- },
437
- });