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