@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.
- package/LICENSE +20 -0
- package/README.md +880 -0
- package/lib/commonjs/BottomSheet/animations/drag.animation.js +72 -0
- package/lib/commonjs/BottomSheet/animations/drag.animation.js.map +1 -0
- package/lib/commonjs/BottomSheet/components/BottomSheet.js +92 -0
- package/lib/commonjs/BottomSheet/components/BottomSheet.js.map +1 -0
- package/lib/commonjs/BottomSheet/components/BottomSheetFlatlist.js +38 -0
- package/lib/commonjs/BottomSheet/components/BottomSheetFlatlist.js.map +1 -0
- package/lib/commonjs/BottomSheet/components/BottomSheetModal.js +34 -0
- package/lib/commonjs/BottomSheet/components/BottomSheetModal.js.map +1 -0
- package/lib/commonjs/BottomSheet/components/BottomSheetScrollView.js +37 -0
- package/lib/commonjs/BottomSheet/components/BottomSheetScrollView.js.map +1 -0
- package/lib/commonjs/BottomSheet/config/bottomSheet.constants.js +35 -0
- package/lib/commonjs/BottomSheet/config/bottomSheet.constants.js.map +1 -0
- package/lib/commonjs/BottomSheet/config/bottomSheet.styles.js +42 -0
- package/lib/commonjs/BottomSheet/config/bottomSheet.styles.js.map +1 -0
- package/lib/commonjs/BottomSheet/config/bottomSheet.types.js +14 -0
- package/lib/commonjs/BottomSheet/config/bottomSheet.types.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/bottomFlatlist.controller.js +69 -0
- package/lib/commonjs/BottomSheet/controller/bottomFlatlist.controller.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/bottomScrollView.controller.js +41 -0
- package/lib/commonjs/BottomSheet/controller/bottomScrollView.controller.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/bottomSheet.controller.js +216 -0
- package/lib/commonjs/BottomSheet/controller/bottomSheet.controller.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/callbacks.controller.js +135 -0
- package/lib/commonjs/BottomSheet/controller/callbacks.controller.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/dragAnimation.controller.js +127 -0
- package/lib/commonjs/BottomSheet/controller/dragAnimation.controller.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetRef.js +60 -0
- package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetRef.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetUtils.js +74 -0
- package/lib/commonjs/BottomSheet/controller/hooks/useBottomSheetUtils.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/index.js +17 -0
- package/lib/commonjs/BottomSheet/controller/index.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/keyboardAnimation.controller.js +88 -0
- package/lib/commonjs/BottomSheet/controller/keyboardAnimation.controller.js.map +1 -0
- package/lib/commonjs/BottomSheet/controller/scrollContent.controller.js +89 -0
- package/lib/commonjs/BottomSheet/controller/scrollContent.controller.js.map +1 -0
- package/lib/commonjs/BottomSheet/index.js +130 -0
- package/lib/commonjs/BottomSheet/index.js.map +1 -0
- package/lib/commonjs/index.js +17 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/BottomSheet/animations/drag.animation.js +68 -0
- package/lib/module/BottomSheet/animations/drag.animation.js.map +1 -0
- package/lib/module/BottomSheet/components/BottomSheet.js +87 -0
- package/lib/module/BottomSheet/components/BottomSheet.js.map +1 -0
- package/lib/module/BottomSheet/components/BottomSheetFlatlist.js +32 -0
- package/lib/module/BottomSheet/components/BottomSheetFlatlist.js.map +1 -0
- package/lib/module/BottomSheet/components/BottomSheetModal.js +30 -0
- package/lib/module/BottomSheet/components/BottomSheetModal.js.map +1 -0
- package/lib/module/BottomSheet/components/BottomSheetScrollView.js +31 -0
- package/lib/module/BottomSheet/components/BottomSheetScrollView.js.map +1 -0
- package/lib/module/BottomSheet/config/bottomSheet.constants.js +30 -0
- package/lib/module/BottomSheet/config/bottomSheet.constants.js.map +1 -0
- package/lib/module/BottomSheet/config/bottomSheet.styles.js +38 -0
- package/lib/module/BottomSheet/config/bottomSheet.styles.js.map +1 -0
- package/lib/module/BottomSheet/config/bottomSheet.types.js +10 -0
- package/lib/module/BottomSheet/config/bottomSheet.types.js.map +1 -0
- package/lib/module/BottomSheet/controller/bottomFlatlist.controller.js +64 -0
- package/lib/module/BottomSheet/controller/bottomFlatlist.controller.js.map +1 -0
- package/lib/module/BottomSheet/controller/bottomScrollView.controller.js +37 -0
- package/lib/module/BottomSheet/controller/bottomScrollView.controller.js.map +1 -0
- package/lib/module/BottomSheet/controller/bottomSheet.controller.js +212 -0
- package/lib/module/BottomSheet/controller/bottomSheet.controller.js.map +1 -0
- package/lib/module/BottomSheet/controller/callbacks.controller.js +130 -0
- package/lib/module/BottomSheet/controller/callbacks.controller.js.map +1 -0
- package/lib/module/BottomSheet/controller/dragAnimation.controller.js +122 -0
- package/lib/module/BottomSheet/controller/dragAnimation.controller.js.map +1 -0
- package/lib/module/BottomSheet/controller/hooks/useBottomSheetRef.js +56 -0
- package/lib/module/BottomSheet/controller/hooks/useBottomSheetRef.js.map +1 -0
- package/lib/module/BottomSheet/controller/hooks/useBottomSheetUtils.js +70 -0
- package/lib/module/BottomSheet/controller/hooks/useBottomSheetUtils.js.map +1 -0
- package/lib/module/BottomSheet/controller/index.js +4 -0
- package/lib/module/BottomSheet/controller/index.js.map +1 -0
- package/lib/module/BottomSheet/controller/keyboardAnimation.controller.js +84 -0
- package/lib/module/BottomSheet/controller/keyboardAnimation.controller.js.map +1 -0
- package/lib/module/BottomSheet/controller/scrollContent.controller.js +84 -0
- package/lib/module/BottomSheet/controller/scrollContent.controller.js.map +1 -0
- package/lib/module/BottomSheet/index.js +112 -0
- package/lib/module/BottomSheet/index.js.map +1 -0
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/animations/drag.animation.d.ts +31 -0
- package/lib/typescript/commonjs/src/BottomSheet/animations/drag.animation.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheet.d.ts +9 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetFlatlist.d.ts +3 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetFlatlist.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetModal.d.ts +8 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetModal.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetScrollView.d.ts +3 -0
- package/lib/typescript/commonjs/src/BottomSheet/components/BottomSheetScrollView.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.constants.d.ts +30 -0
- package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.constants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.styles.d.ts +37 -0
- package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.styles.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.types.d.ts +185 -0
- package/lib/typescript/commonjs/src/BottomSheet/config/bottomSheet.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/bottomFlatlist.controller.d.ts +480 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/bottomFlatlist.controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/bottomScrollView.controller.d.ts +338 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/bottomScrollView.controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/bottomSheet.controller.d.ts +51 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/bottomSheet.controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/callbacks.controller.d.ts +36 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/callbacks.controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/dragAnimation.controller.d.ts +27 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/dragAnimation.controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts +12 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts +40 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/index.d.ts +2 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/keyboardAnimation.controller.d.ts +15 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/keyboardAnimation.controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/scrollContent.controller.d.ts +20 -0
- package/lib/typescript/commonjs/src/BottomSheet/controller/scrollContent.controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/BottomSheet/index.d.ts +23 -0
- package/lib/typescript/commonjs/src/BottomSheet/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +2 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/BottomSheet/animations/drag.animation.d.ts +31 -0
- package/lib/typescript/module/src/BottomSheet/animations/drag.animation.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheet.d.ts +9 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheetFlatlist.d.ts +3 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheetFlatlist.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheetModal.d.ts +8 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheetModal.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheetScrollView.d.ts +3 -0
- package/lib/typescript/module/src/BottomSheet/components/BottomSheetScrollView.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/config/bottomSheet.constants.d.ts +30 -0
- package/lib/typescript/module/src/BottomSheet/config/bottomSheet.constants.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/config/bottomSheet.styles.d.ts +37 -0
- package/lib/typescript/module/src/BottomSheet/config/bottomSheet.styles.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/config/bottomSheet.types.d.ts +185 -0
- package/lib/typescript/module/src/BottomSheet/config/bottomSheet.types.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/bottomFlatlist.controller.d.ts +480 -0
- package/lib/typescript/module/src/BottomSheet/controller/bottomFlatlist.controller.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/bottomScrollView.controller.d.ts +338 -0
- package/lib/typescript/module/src/BottomSheet/controller/bottomScrollView.controller.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/bottomSheet.controller.d.ts +51 -0
- package/lib/typescript/module/src/BottomSheet/controller/bottomSheet.controller.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/callbacks.controller.d.ts +36 -0
- package/lib/typescript/module/src/BottomSheet/controller/callbacks.controller.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/dragAnimation.controller.d.ts +27 -0
- package/lib/typescript/module/src/BottomSheet/controller/dragAnimation.controller.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts +12 -0
- package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetRef.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts +40 -0
- package/lib/typescript/module/src/BottomSheet/controller/hooks/useBottomSheetUtils.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/index.d.ts +2 -0
- package/lib/typescript/module/src/BottomSheet/controller/index.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/keyboardAnimation.controller.d.ts +15 -0
- package/lib/typescript/module/src/BottomSheet/controller/keyboardAnimation.controller.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/controller/scrollContent.controller.d.ts +20 -0
- package/lib/typescript/module/src/BottomSheet/controller/scrollContent.controller.d.ts.map +1 -0
- package/lib/typescript/module/src/BottomSheet/index.d.ts +23 -0
- package/lib/typescript/module/src/BottomSheet/index.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +2 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/package.json +203 -0
- package/src/BottomSheet/animations/drag.animation.ts +86 -0
- package/src/BottomSheet/components/BottomSheet.tsx +157 -0
- package/src/BottomSheet/components/BottomSheetFlatlist.tsx +46 -0
- package/src/BottomSheet/components/BottomSheetModal.tsx +47 -0
- package/src/BottomSheet/components/BottomSheetScrollView.tsx +46 -0
- package/src/BottomSheet/config/bottomSheet.constants.ts +31 -0
- package/src/BottomSheet/config/bottomSheet.styles.ts +42 -0
- package/src/BottomSheet/config/bottomSheet.types.ts +246 -0
- package/src/BottomSheet/controller/bottomFlatlist.controller.ts +87 -0
- package/src/BottomSheet/controller/bottomScrollView.controller.ts +43 -0
- package/src/BottomSheet/controller/bottomSheet.controller.ts +238 -0
- package/src/BottomSheet/controller/callbacks.controller.ts +222 -0
- package/src/BottomSheet/controller/dragAnimation.controller.ts +211 -0
- package/src/BottomSheet/controller/hooks/useBottomSheetRef.ts +73 -0
- package/src/BottomSheet/controller/hooks/useBottomSheetUtils.ts +75 -0
- package/src/BottomSheet/controller/index.ts +1 -0
- package/src/BottomSheet/controller/keyboardAnimation.controller.ts +148 -0
- package/src/BottomSheet/controller/scrollContent.controller.ts +120 -0
- package/src/BottomSheet/index.tsx +139 -0
- package/src/index.tsx +1 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useBottomSheetUtils = useBottomSheetUtils;
|
|
7
|
+
var _reactNativeEssentials = require("@shaquillehinds/react-native-essentials");
|
|
8
|
+
var _bottomSheetConstants = require("../../config/bottomSheet.constants.js");
|
|
9
|
+
function useBottomSheetUtils() {
|
|
10
|
+
const deviceOrientation = (0, _reactNativeEssentials.useDeviceOrientation)();
|
|
11
|
+
const extraHeight = deviceOrientation.relativeY(_bottomSheetConstants.extraHeightPercent);
|
|
12
|
+
const modalHeight = deviceOrientation.relativeY(100) + extraHeight;
|
|
13
|
+
const modalBottomOffset = -modalHeight * 2;
|
|
14
|
+
const getMaxMinSnapPoints = snapPoints => {
|
|
15
|
+
const firstSnapPoint = snapPoints[0];
|
|
16
|
+
let maxSnapPoint = firstSnapPoint.offset;
|
|
17
|
+
let minSnapPoint = firstSnapPoint.offset;
|
|
18
|
+
for (const snapPoint of snapPoints) {
|
|
19
|
+
if (snapPoint.offset < maxSnapPoint) maxSnapPoint = snapPoint.offset;
|
|
20
|
+
if (snapPoint.offset > minSnapPoint) minSnapPoint = snapPoint.offset;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
maxSnapPoint,
|
|
24
|
+
minSnapPoint,
|
|
25
|
+
firstSnapPoint
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
const getMaxMinSnapPointsWorklet = snapPoints => {
|
|
29
|
+
'worklet';
|
|
30
|
+
|
|
31
|
+
const firstSnapPoint = snapPoints.value[0];
|
|
32
|
+
let maxSnapPoint = firstSnapPoint.offset;
|
|
33
|
+
let minSnapPoint = firstSnapPoint.offset;
|
|
34
|
+
for (const snapPoint of snapPoints.value) {
|
|
35
|
+
if (snapPoint.offset < maxSnapPoint) maxSnapPoint = snapPoint.offset;
|
|
36
|
+
if (snapPoint.offset > minSnapPoint) minSnapPoint = snapPoint.offset;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
maxSnapPoint,
|
|
40
|
+
minSnapPoint,
|
|
41
|
+
firstSnapPoint
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
const percentageToSnapPoint = p => {
|
|
45
|
+
const percentage = (0, _reactNativeEssentials.strToNumPercentage)(p);
|
|
46
|
+
return {
|
|
47
|
+
percentage: percentage / 100,
|
|
48
|
+
offset: -(deviceOrientation.relativeY(percentage) + extraHeight)
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
const percentageToSnapPointWorklet = (p, screenHeight) => {
|
|
52
|
+
'worklet';
|
|
53
|
+
|
|
54
|
+
const percentage = (0, _reactNativeEssentials.strToNumPercentageWorklet)(p);
|
|
55
|
+
const decimal = percentage / 100;
|
|
56
|
+
const snapPointOffset = screenHeight * decimal;
|
|
57
|
+
const extraSnapPointHeight = screenHeight * (_bottomSheetConstants.extraHeightPercent / 100);
|
|
58
|
+
return {
|
|
59
|
+
percentage: decimal,
|
|
60
|
+
offset: -(snapPointOffset + extraSnapPointHeight)
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
return {
|
|
64
|
+
...deviceOrientation,
|
|
65
|
+
extraHeight,
|
|
66
|
+
modalHeight,
|
|
67
|
+
modalBottomOffset,
|
|
68
|
+
getMaxMinSnapPoints,
|
|
69
|
+
getMaxMinSnapPointsWorklet,
|
|
70
|
+
percentageToSnapPoint,
|
|
71
|
+
percentageToSnapPointWorklet
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=useBottomSheetUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeEssentials","require","_bottomSheetConstants","useBottomSheetUtils","deviceOrientation","useDeviceOrientation","extraHeight","relativeY","extraHeightPercent","modalHeight","modalBottomOffset","getMaxMinSnapPoints","snapPoints","firstSnapPoint","maxSnapPoint","offset","minSnapPoint","snapPoint","getMaxMinSnapPointsWorklet","value","percentageToSnapPoint","p","percentage","strToNumPercentage","percentageToSnapPointWorklet","screenHeight","strToNumPercentageWorklet","decimal","snapPointOffset","extraSnapPointHeight"],"sourceRoot":"../../../../../src","sources":["BottomSheet/controller/hooks/useBottomSheetUtils.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAOA,IAAAC,qBAAA,GAAAD,OAAA;AAEO,SAASE,mBAAmBA,CAAA,EAAG;EACpC,MAAMC,iBAAiB,GAAG,IAAAC,2CAAoB,EAAC,CAAC;EAEhD,MAAMC,WAAW,GAAGF,iBAAiB,CAACG,SAAS,CAACC,wCAAkB,CAAC;EACnE,MAAMC,WAAW,GAAGL,iBAAiB,CAACG,SAAS,CAAC,GAAG,CAAC,GAAGD,WAAW;EAClE,MAAMI,iBAAiB,GAAG,CAACD,WAAW,GAAG,CAAC;EAE1C,MAAME,mBAAmB,GAAIC,UAAuB,IAAK;IACvD,MAAMC,cAAc,GAAGD,UAAU,CAAC,CAAC,CAAE;IACrC,IAAIE,YAAY,GAAGD,cAAc,CAACE,MAAM;IACxC,IAAIC,YAAY,GAAGH,cAAc,CAACE,MAAM;IACxC,KAAK,MAAME,SAAS,IAAIL,UAAU,EAAE;MAClC,IAAIK,SAAS,CAACF,MAAM,GAAGD,YAAY,EAAEA,YAAY,GAAGG,SAAS,CAACF,MAAM;MACpE,IAAIE,SAAS,CAACF,MAAM,GAAGC,YAAY,EAAEA,YAAY,GAAGC,SAAS,CAACF,MAAM;IACtE;IACA,OAAO;MAAED,YAAY;MAAEE,YAAY;MAAEH;IAAe,CAAC;EACvD,CAAC;EAED,MAAMK,0BAA0B,GAAIN,UAAoC,IAAK;IAC3E,SAAS;;IACT,MAAMC,cAAc,GAAGD,UAAU,CAACO,KAAK,CAAC,CAAC,CAAE;IAC3C,IAAIL,YAAY,GAAGD,cAAc,CAACE,MAAM;IACxC,IAAIC,YAAY,GAAGH,cAAc,CAACE,MAAM;IACxC,KAAK,MAAME,SAAS,IAAIL,UAAU,CAACO,KAAK,EAAE;MACxC,IAAIF,SAAS,CAACF,MAAM,GAAGD,YAAY,EAAEA,YAAY,GAAGG,SAAS,CAACF,MAAM;MACpE,IAAIE,SAAS,CAACF,MAAM,GAAGC,YAAY,EAAEA,YAAY,GAAGC,SAAS,CAACF,MAAM;IACtE;IACA,OAAO;MAAED,YAAY;MAAEE,YAAY;MAAEH;IAAe,CAAC;EACvD,CAAC;EAED,MAAMO,qBAAqB,GAAIC,CAAkB,IAAK;IACpD,MAAMC,UAAU,GAAG,IAAAC,yCAAkB,EAACF,CAAC,CAAC;IACxC,OAAO;MACLC,UAAU,EAAEA,UAAU,GAAG,GAAG;MAC5BP,MAAM,EAAE,EAAEX,iBAAiB,CAACG,SAAS,CAACe,UAAU,CAAC,GAAGhB,WAAW;IACjE,CAAC;EACH,CAAC;EAED,MAAMkB,4BAA4B,GAAGA,CACnCH,CAAkB,EAClBI,YAAoB,KACjB;IACH,SAAS;;IACT,MAAMH,UAAU,GAAG,IAAAI,gDAAyB,EAACL,CAAC,CAAC;IAC/C,MAAMM,OAAO,GAAGL,UAAU,GAAG,GAAG;IAChC,MAAMM,eAAe,GAAGH,YAAY,GAAGE,OAAO;IAC9C,MAAME,oBAAoB,GAAGJ,YAAY,IAAIjB,wCAAkB,GAAG,GAAG,CAAC;IACtE,OAAO;MACLc,UAAU,EAAEK,OAAO;MACnBZ,MAAM,EAAE,EAAEa,eAAe,GAAGC,oBAAoB;IAClD,CAAC;EACH,CAAC;EAED,OAAO;IACL,GAAGzB,iBAAiB;IACpBE,WAAW;IACXG,WAAW;IACXC,iBAAiB;IACjBC,mBAAmB;IACnBO,0BAA0B;IAC1BE,qBAAqB;IACrBI;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _bottomSheetController = require("./bottomSheet.controller.js");
|
|
7
|
+
Object.keys(_bottomSheetController).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _bottomSheetController[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _bottomSheetController[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_bottomSheetController","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../../../src","sources":["BottomSheet/controller/index.ts"],"mappings":";;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,sBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,sBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,sBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.keyboardAnimationController = keyboardAnimationController;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
var _bottomSheetConstants = require("../config/bottomSheet.constants.js");
|
|
10
|
+
var _reactNativeEssentials = require("@shaquillehinds/react-native-essentials");
|
|
11
|
+
function keyboardAnimationController(props) {
|
|
12
|
+
const {
|
|
13
|
+
translationY,
|
|
14
|
+
prevTranslationY,
|
|
15
|
+
modalContentTranslateY,
|
|
16
|
+
keyboardHeight
|
|
17
|
+
} = props;
|
|
18
|
+
const keyboardHeightRef = (0, _react.useRef)(0);
|
|
19
|
+
const setKeyboardHeight = (0, _react.useCallback)(height => {
|
|
20
|
+
keyboardHeight.value = height;
|
|
21
|
+
keyboardHeightRef.current = height;
|
|
22
|
+
}, []);
|
|
23
|
+
const adjustForKeyboardHeight = (0, _react.useCallback)((currentKeyboardHeight, previousKeyboardHeight, screenHeight) => {
|
|
24
|
+
'worklet';
|
|
25
|
+
|
|
26
|
+
const maxModalY = screenHeight * -1;
|
|
27
|
+
if (currentKeyboardHeight > 10) {
|
|
28
|
+
if (translationY.value <= maxModalY) {
|
|
29
|
+
modalContentTranslateY.value = (0, _reactNativeReanimated.withTiming)(-currentKeyboardHeight, _bottomSheetConstants.openKeyboardTimingConfig);
|
|
30
|
+
} else {
|
|
31
|
+
const maxGap = maxModalY - translationY.value;
|
|
32
|
+
const height = translationY.value - currentKeyboardHeight;
|
|
33
|
+
if (height < maxModalY) {
|
|
34
|
+
const modalShift = translationY.value + maxGap;
|
|
35
|
+
translationY.value = (0, _reactNativeReanimated.withTiming)(modalShift, _bottomSheetConstants.openKeyboardTimingConfig);
|
|
36
|
+
prevTranslationY.value = modalShift;
|
|
37
|
+
modalContentTranslateY.value = (0, _reactNativeReanimated.withTiming)(-currentKeyboardHeight - maxGap, _bottomSheetConstants.openKeyboardTimingConfig);
|
|
38
|
+
} else {
|
|
39
|
+
translationY.value = (0, _reactNativeReanimated.withTiming)(height, _bottomSheetConstants.openKeyboardTimingConfig);
|
|
40
|
+
prevTranslationY.value = height;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
} else {
|
|
44
|
+
const newTranslationY = translationY.value + (previousKeyboardHeight + modalContentTranslateY.value);
|
|
45
|
+
translationY.value = (0, _reactNativeReanimated.withTiming)(newTranslationY, _bottomSheetConstants.closeKeyboardTimingConfig);
|
|
46
|
+
prevTranslationY.value = newTranslationY;
|
|
47
|
+
modalContentTranslateY.value = (0, _reactNativeReanimated.withTiming)(0, _bottomSheetConstants.closeKeyboardTimingConfig);
|
|
48
|
+
}
|
|
49
|
+
}, []);
|
|
50
|
+
const keyBoardShowListener = (0, _react.useCallback)(async (e, shouldAdjust) => {
|
|
51
|
+
await (0, _reactNativeEssentials.wait)(10);
|
|
52
|
+
if (keyboardHeightRef.current) return;
|
|
53
|
+
setKeyboardHeight(e.endCoordinates.height);
|
|
54
|
+
if (!shouldAdjust) return;
|
|
55
|
+
if (props.inputsForKeyboardToAvoid && !props.inputsForKeyboardToAvoid.find(input => {
|
|
56
|
+
return input.current?.isFocused();
|
|
57
|
+
})) return;
|
|
58
|
+
props.setDisableLayoutAnimation(true);
|
|
59
|
+
(0, _reactNativeReanimated.runOnUI)(adjustForKeyboardHeight)(keyboardHeightRef.current, 0, props.screenHeight);
|
|
60
|
+
}, [props.screenHeight]);
|
|
61
|
+
const keyboardHideListener = (0, _react.useCallback)(async shouldAdjust => {
|
|
62
|
+
if (!keyboardHeightRef.current) return;
|
|
63
|
+
const previousKeyboardHeight = keyboardHeightRef.current;
|
|
64
|
+
setKeyboardHeight(0);
|
|
65
|
+
if (!shouldAdjust) return;
|
|
66
|
+
props.setDisableLayoutAnimation(false);
|
|
67
|
+
(0, _reactNativeReanimated.runOnUI)(adjustForKeyboardHeight)(keyboardHeightRef.current, previousKeyboardHeight, props.screenHeight);
|
|
68
|
+
}, [props.screenHeight]);
|
|
69
|
+
const shouldAdjustForKeyboard = !!(props.avoidKeyboard || props.inputsForKeyboardToAvoid?.length);
|
|
70
|
+
(0, _reactNativeEssentials.useKeyboardListeners)({
|
|
71
|
+
listeners: {
|
|
72
|
+
keyboardWillShow: e => {
|
|
73
|
+
_reactNativeEssentials.isIOS && keyBoardShowListener(e, shouldAdjustForKeyboard);
|
|
74
|
+
},
|
|
75
|
+
keyboardWillHide: () => {
|
|
76
|
+
_reactNativeEssentials.isIOS && keyboardHideListener(shouldAdjustForKeyboard);
|
|
77
|
+
},
|
|
78
|
+
keyboardDidShow: e => {
|
|
79
|
+
_reactNativeEssentials.isAndroid && keyBoardShowListener(e, shouldAdjustForKeyboard);
|
|
80
|
+
},
|
|
81
|
+
keyboardDidHide: async () => {
|
|
82
|
+
_reactNativeEssentials.isAndroid && keyboardHideListener(shouldAdjustForKeyboard);
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
subscribeCondition: () => true
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=keyboardAnimation.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_bottomSheetConstants","_reactNativeEssentials","keyboardAnimationController","props","translationY","prevTranslationY","modalContentTranslateY","keyboardHeight","keyboardHeightRef","useRef","setKeyboardHeight","useCallback","height","value","current","adjustForKeyboardHeight","currentKeyboardHeight","previousKeyboardHeight","screenHeight","maxModalY","withTiming","openKeyboardTimingConfig","maxGap","modalShift","newTranslationY","closeKeyboardTimingConfig","keyBoardShowListener","e","shouldAdjust","wait","endCoordinates","inputsForKeyboardToAvoid","find","input","isFocused","setDisableLayoutAnimation","runOnUI","keyboardHideListener","shouldAdjustForKeyboard","avoidKeyboard","length","useKeyboardListeners","listeners","keyboardWillShow","isIOS","keyboardWillHide","keyboardDidShow","isAndroid","keyboardDidHide","subscribeCondition"],"sourceRoot":"../../../../src","sources":["BottomSheet/controller/keyboardAnimation.controller.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scrollContentController = scrollContentController;
|
|
7
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
//$lf-ignore
|
|
10
|
+
|
|
11
|
+
function scrollContentController({
|
|
12
|
+
scrollActive,
|
|
13
|
+
scrollY,
|
|
14
|
+
onDragStartGesture,
|
|
15
|
+
onDragEndGesture,
|
|
16
|
+
onDragGesture,
|
|
17
|
+
maxScrollOffset,
|
|
18
|
+
inverted,
|
|
19
|
+
scrollableComponentRef
|
|
20
|
+
}) {
|
|
21
|
+
const enableScroll = (scrollEnabled, timeout) => {
|
|
22
|
+
if (timeout) setTimeout(() => scrollableComponentRef?.current?.setNativeProps({
|
|
23
|
+
scrollEnabled
|
|
24
|
+
}), timeout);else scrollableComponentRef?.current?.setNativeProps({
|
|
25
|
+
scrollEnabled
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const dragEnabled = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
29
|
+
const initDragPos = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
30
|
+
const beginDragInit = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
31
|
+
const scrollEnabled = (0, _reactNativeReanimated.useSharedValue)(true);
|
|
32
|
+
const onBeginScroll = (0, _react.useCallback)(e => {
|
|
33
|
+
'worklet';
|
|
34
|
+
|
|
35
|
+
const maxPositionFromTopToEnableScroll = 15;
|
|
36
|
+
const isPositionFarFromTop = inverted.value ? scrollY.value < maxScrollOffset.value - maxPositionFromTopToEnableScroll : scrollY.value > maxPositionFromTopToEnableScroll;
|
|
37
|
+
if (isPositionFarFromTop) {
|
|
38
|
+
scrollActive.value = true;
|
|
39
|
+
} else {
|
|
40
|
+
beginDragInit.value = true;
|
|
41
|
+
onDragStartGesture(e);
|
|
42
|
+
}
|
|
43
|
+
}, []);
|
|
44
|
+
const onUpdateScroll = (0, _react.useCallback)(e => {
|
|
45
|
+
'worklet';
|
|
46
|
+
|
|
47
|
+
if (scrollActive.value) return;
|
|
48
|
+
if (dragEnabled.value) {
|
|
49
|
+
if (scrollEnabled.value) {
|
|
50
|
+
if (e.translationY < initDragPos.value) {
|
|
51
|
+
scrollEnabled.value = false;
|
|
52
|
+
(0, _reactNativeReanimated.runOnJS)(enableScroll)(false);
|
|
53
|
+
}
|
|
54
|
+
initDragPos.value = e.translationY;
|
|
55
|
+
}
|
|
56
|
+
return onDragGesture(e);
|
|
57
|
+
}
|
|
58
|
+
if (beginDragInit.value) {
|
|
59
|
+
beginDragInit.value = false;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (e.translationY > -400 && (inverted.value ? Math.round(scrollY.value) >= Math.round(maxScrollOffset.value) : scrollY.value <= 0)) {
|
|
63
|
+
if (!dragEnabled.value) {
|
|
64
|
+
initDragPos.value = e.translationY;
|
|
65
|
+
dragEnabled.value = true;
|
|
66
|
+
onDragGesture(e);
|
|
67
|
+
}
|
|
68
|
+
} else if (scrollY.value > 0) {
|
|
69
|
+
scrollActive.value = true;
|
|
70
|
+
}
|
|
71
|
+
}, [enableScroll]);
|
|
72
|
+
const onEndScroll = (0, _react.useCallback)(e => {
|
|
73
|
+
'worklet';
|
|
74
|
+
|
|
75
|
+
if (!scrollActive.value) {
|
|
76
|
+
onDragEndGesture(e);
|
|
77
|
+
(0, _reactNativeReanimated.runOnJS)(enableScroll)(true);
|
|
78
|
+
} else (0, _reactNativeReanimated.runOnJS)(enableScroll)(true);
|
|
79
|
+
scrollActive.value = false;
|
|
80
|
+
dragEnabled.value = false;
|
|
81
|
+
scrollEnabled.value = true;
|
|
82
|
+
}, [enableScroll]);
|
|
83
|
+
return {
|
|
84
|
+
onBeginScroll,
|
|
85
|
+
onUpdateScroll,
|
|
86
|
+
onEndScroll
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=scrollContent.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","_react","scrollContentController","scrollActive","scrollY","onDragStartGesture","onDragEndGesture","onDragGesture","maxScrollOffset","inverted","scrollableComponentRef","enableScroll","scrollEnabled","timeout","setTimeout","current","setNativeProps","dragEnabled","useSharedValue","initDragPos","beginDragInit","onBeginScroll","useCallback","e","maxPositionFromTopToEnableScroll","isPositionFarFromTop","value","onUpdateScroll","translationY","runOnJS","Math","round","onEndScroll"],"sourceRoot":"../../../../src","sources":["BottomSheet/controller/scrollContent.controller.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BottomSheet = exports.BottomModalContext = void 0;
|
|
7
|
+
Object.defineProperty(exports, "BottomSheetFlatlist", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _BottomSheetFlatlist.BottomSheetFlatlist;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports.BottomSheetModal = void 0;
|
|
14
|
+
Object.defineProperty(exports, "BottomSheetScrollView", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _BottomSheetScrollView.BottomSheetScrollView;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
exports.useBottomSheetRef = void 0;
|
|
21
|
+
var _react = require("react");
|
|
22
|
+
var _BottomSheetModal = require("./components/BottomSheetModal.js");
|
|
23
|
+
var _BottomSheet = require("./components/BottomSheet.js");
|
|
24
|
+
var _BottomSheetFlatlist = require("./components/BottomSheetFlatlist.js");
|
|
25
|
+
var _BottomSheetScrollView = require("./components/BottomSheetScrollView.js");
|
|
26
|
+
var _index = require("./controller/index.js");
|
|
27
|
+
var _useBottomSheetRef = require("./controller/hooks/useBottomSheetRef.js");
|
|
28
|
+
var _bottomSheetConstants = require("./config/bottomSheet.constants.js");
|
|
29
|
+
var _reactNativeEssentials = require("@shaquillehinds/react-native-essentials");
|
|
30
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
|
+
const BottomModalContext = exports.BottomModalContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
32
|
+
const BottomSheetModal = exports.BottomSheetModal = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
33
|
+
const {
|
|
34
|
+
mounterRef,
|
|
35
|
+
sheetRef,
|
|
36
|
+
modalRef
|
|
37
|
+
} = (0, _useBottomSheetRef.useBottomSheetRef)({
|
|
38
|
+
ref,
|
|
39
|
+
showModal: props.showModal,
|
|
40
|
+
setShowModal: props.setShowModal
|
|
41
|
+
});
|
|
42
|
+
const Modal = /*#__PURE__*/(0, _jsxRuntime.jsx)(BottomModalContext.Provider, {
|
|
43
|
+
value: {
|
|
44
|
+
modalRef
|
|
45
|
+
},
|
|
46
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeEssentials.ComponentMounter, {
|
|
47
|
+
ref: mounterRef,
|
|
48
|
+
showComponent: props.showModal,
|
|
49
|
+
setShowComponent: props.setShowModal,
|
|
50
|
+
unMountDelayInMilliSeconds: _bottomSheetConstants.animateCloseTimingConfig.duration,
|
|
51
|
+
onComponentShow: props.onModalShow,
|
|
52
|
+
onComponentClose: props.onModalClose,
|
|
53
|
+
component: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheetModal.BottomSheetModal, {
|
|
54
|
+
...props,
|
|
55
|
+
_unMounter: () => mounterRef.current?.unMountComponent(),
|
|
56
|
+
ref: sheetRef
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
const portal = (0, _reactNativeEssentials.usePortalComponent)({
|
|
61
|
+
Component: Modal,
|
|
62
|
+
name: 'smooth-bottom-modal',
|
|
63
|
+
disable: props.disablePortal || props.useNativeModal,
|
|
64
|
+
CustomPortalContext: props.CustomPortalContext
|
|
65
|
+
});
|
|
66
|
+
if (portal && !props.disablePortal && !props.useNativeModal) {
|
|
67
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
|
|
68
|
+
} else {
|
|
69
|
+
return Modal;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
const BottomSheetControl = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
73
|
+
const controller = (0, _index.bottomSheetController)(props);
|
|
74
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeEssentials.ModalWrapper, {
|
|
75
|
+
enableBackgroundContentPress: true,
|
|
76
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheet.BottomSheet, {
|
|
77
|
+
...props,
|
|
78
|
+
controller: controller,
|
|
79
|
+
ref: ref
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
84
|
+
const {
|
|
85
|
+
mounterRef,
|
|
86
|
+
sheetRef,
|
|
87
|
+
modalRef
|
|
88
|
+
} = (0, _useBottomSheetRef.useBottomSheetRef)({
|
|
89
|
+
ref,
|
|
90
|
+
showModal: props.showModal,
|
|
91
|
+
setShowModal: props.setShowModal
|
|
92
|
+
});
|
|
93
|
+
const Modal = /*#__PURE__*/(0, _jsxRuntime.jsx)(BottomModalContext.Provider, {
|
|
94
|
+
value: {
|
|
95
|
+
modalRef
|
|
96
|
+
},
|
|
97
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeEssentials.ComponentMounter, {
|
|
98
|
+
ref: mounterRef,
|
|
99
|
+
showComponent: props.showModal,
|
|
100
|
+
setShowComponent: props.setShowModal,
|
|
101
|
+
unMountDelayInMilliSeconds: _bottomSheetConstants.animateCloseTimingConfig.duration,
|
|
102
|
+
onComponentShow: props.onModalShow,
|
|
103
|
+
onComponentClose: props.onModalClose,
|
|
104
|
+
component: /*#__PURE__*/(0, _jsxRuntime.jsx)(BottomSheetControl, {
|
|
105
|
+
...props,
|
|
106
|
+
_unMounter: () => mounterRef.current?.unMountComponent(),
|
|
107
|
+
ref: sheetRef
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
const portal = (0, _reactNativeEssentials.usePortalComponent)({
|
|
112
|
+
Component: Modal,
|
|
113
|
+
name: 'smooth-bottom-modal',
|
|
114
|
+
disable: props.disablePortal || props.useNativeModal,
|
|
115
|
+
CustomPortalContext: props.CustomPortalContext
|
|
116
|
+
});
|
|
117
|
+
if (portal && !props.disablePortal && !props.useNativeModal) {
|
|
118
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
|
|
119
|
+
} else {
|
|
120
|
+
return Modal;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
const useBottomSheetRef = () => {
|
|
124
|
+
const context = (0, _react.useContext)(BottomModalContext);
|
|
125
|
+
return {
|
|
126
|
+
modalRef: context?.modalRef
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
exports.useBottomSheetRef = useBottomSheetRef;
|
|
130
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_BottomSheetModal","_BottomSheet","_BottomSheetFlatlist","_BottomSheetScrollView","_index","_useBottomSheetRef","_bottomSheetConstants","_reactNativeEssentials","_jsxRuntime","BottomModalContext","exports","createContext","BottomSheetModal","forwardRef","props","ref","mounterRef","sheetRef","modalRef","useBottomSheetRefs","showModal","setShowModal","Modal","jsx","Provider","value","children","ComponentMounter","showComponent","setShowComponent","unMountDelayInMilliSeconds","animateCloseTimingConfig","duration","onComponentShow","onModalShow","onComponentClose","onModalClose","component","_unMounter","current","unMountComponent","portal","usePortalComponent","Component","name","disable","disablePortal","useNativeModal","CustomPortalContext","Fragment","BottomSheetControl","controller","bottomSheetController","ModalWrapper","enableBackgroundContentPress","BottomSheet","useBottomSheetRef","context","useContext"],"sourceRoot":"../../../src","sources":["BottomSheet/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _index = require("./BottomSheet/index.js");
|
|
7
|
+
Object.keys(_index).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _index[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _index[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_index","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
//$lf-ignore
|
|
4
|
+
import { useSharedValue, useAnimatedStyle } from 'react-native-reanimated';
|
|
5
|
+
import { useCallback } from 'react';
|
|
6
|
+
|
|
7
|
+
// function clamp(val: number, min: number, max: number) {
|
|
8
|
+
// 'worklet';
|
|
9
|
+
// return Math.min(Math.max(val, min), max);
|
|
10
|
+
// }
|
|
11
|
+
|
|
12
|
+
//prettier-ignore
|
|
13
|
+
// function stretch(val: number,min: number,max: number,maxStretch: number,stretchOn: 'min' | 'max') {
|
|
14
|
+
// 'worklet';
|
|
15
|
+
// const isMax = stretchOn === 'max';
|
|
16
|
+
// const limit = isMax ? max : min;
|
|
17
|
+
// const direction = isMax ? 1 : -1;
|
|
18
|
+
// const inBounds = isMax ? val <= max : val >= min;
|
|
19
|
+
// if (inBounds) return val;
|
|
20
|
+
// const overshoot = Math.abs(val - limit);
|
|
21
|
+
// const resistance = maxStretch * (1 - 1 / (overshoot / maxStretch + 1));
|
|
22
|
+
// return limit + resistance * direction;
|
|
23
|
+
// }
|
|
24
|
+
|
|
25
|
+
// function maxStretch(val:number, max: number, stretch: number){
|
|
26
|
+
// 'worklet';
|
|
27
|
+
// return val <= max ? val : max - stretch + stretch / ((val - max) / stretch + 1);
|
|
28
|
+
// }
|
|
29
|
+
function minStretch(val, min, stretch) {
|
|
30
|
+
'worklet';
|
|
31
|
+
|
|
32
|
+
//prettier-ignore
|
|
33
|
+
return val >= min ? val : min - stretch + stretch / ((min - val) / stretch + 1);
|
|
34
|
+
}
|
|
35
|
+
export function useDragAnimation(props) {
|
|
36
|
+
const translationX = props?.translationX || useSharedValue(0);
|
|
37
|
+
const translationY = props?.translationY || useSharedValue(0);
|
|
38
|
+
const prevTranslationX = props?.prevTranslationX || useSharedValue(0);
|
|
39
|
+
const prevTranslationY = props?.prevTranslationY || useSharedValue(0);
|
|
40
|
+
const dragAnimatedStyle = useAnimatedStyle(() => ({
|
|
41
|
+
transform: [{
|
|
42
|
+
translateX: translationX.value
|
|
43
|
+
}, {
|
|
44
|
+
translateY: translationY.value
|
|
45
|
+
}]
|
|
46
|
+
}));
|
|
47
|
+
const onDragStart = useCallback(() => {
|
|
48
|
+
'worklet';
|
|
49
|
+
|
|
50
|
+
prevTranslationX.value = translationX.value;
|
|
51
|
+
prevTranslationY.value = translationY.value;
|
|
52
|
+
}, []);
|
|
53
|
+
const onDrag = useCallback(dragProps => {
|
|
54
|
+
'worklet';
|
|
55
|
+
|
|
56
|
+
translationY.value = minStretch(prevTranslationY.value + dragProps.posY, dragProps.minPosY, 100);
|
|
57
|
+
}, []);
|
|
58
|
+
return {
|
|
59
|
+
onDrag,
|
|
60
|
+
onDragStart,
|
|
61
|
+
dragAnimatedStyle,
|
|
62
|
+
translationX,
|
|
63
|
+
translationY,
|
|
64
|
+
prevTranslationX,
|
|
65
|
+
prevTranslationY
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=drag.animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSharedValue","useAnimatedStyle","useCallback","minStretch","val","min","stretch","useDragAnimation","props","translationX","translationY","prevTranslationX","prevTranslationY","dragAnimatedStyle","transform","translateX","value","translateY","onDragStart","onDrag","dragProps","posY","minPosY"],"sourceRoot":"../../../../src","sources":["BottomSheet/animations/drag.animation.ts"],"mappings":";;AAAA;AACA,SACEA,cAAc,EACdC,gBAAgB,QAEX,yBAAyB;AAChC,SAASC,WAAW,QAAQ,OAAO;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAACC,GAAW,EAAEC,GAAW,EAAEC,OAAe,EAAE;EAC7D,SAAS;;EACT;EACA,OAAOF,GAAG,IAAIC,GAAG,GAAGD,GAAG,GAAGC,GAAG,GAAGC,OAAO,GAAGA,OAAO,IAAI,CAACD,GAAG,GAAGD,GAAG,IAAIE,OAAO,GAAG,CAAC,CAAC;AACjF;AAgBA,OAAO,SAASC,gBAAgBA,CAACC,KAA4B,EAAE;EAC7D,MAAMC,YAAY,GAAGD,KAAK,EAAEC,YAAY,IAAIT,cAAc,CAAC,CAAC,CAAC;EAC7D,MAAMU,YAAY,GAAGF,KAAK,EAAEE,YAAY,IAAIV,cAAc,CAAC,CAAC,CAAC;EAC7D,MAAMW,gBAAgB,GAAGH,KAAK,EAAEG,gBAAgB,IAAIX,cAAc,CAAC,CAAC,CAAC;EACrE,MAAMY,gBAAgB,GAAGJ,KAAK,EAAEI,gBAAgB,IAAIZ,cAAc,CAAC,CAAC,CAAC;EAErE,MAAMa,iBAAiB,GAAGZ,gBAAgB,CAAC,OAAO;IAChDa,SAAS,EAAE,CACT;MAAEC,UAAU,EAAEN,YAAY,CAACO;IAAM,CAAC,EAClC;MAAEC,UAAU,EAAEP,YAAY,CAACM;IAAM,CAAC;EAEtC,CAAC,CAAC,CAAC;EAEH,MAAME,WAAW,GAAGhB,WAAW,CAAC,MAAM;IACpC,SAAS;;IACTS,gBAAgB,CAACK,KAAK,GAAGP,YAAY,CAACO,KAAK;IAC3CJ,gBAAgB,CAACI,KAAK,GAAGN,YAAY,CAACM,KAAK;EAC7C,CAAC,EAAE,EAAE,CAAC;EACN,MAAMG,MAAM,GAAGjB,WAAW,CAAEkB,SAA+B,IAAK;IAC9D,SAAS;;IACTV,YAAY,CAACM,KAAK,GAAGb,UAAU,CAC7BS,gBAAgB,CAACI,KAAK,GAAGI,SAAS,CAACC,IAAI,EACvCD,SAAS,CAACE,OAAO,EACjB,GACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IACLH,MAAM;IACND,WAAW;IACXL,iBAAiB;IACjBJ,YAAY;IACZC,YAAY;IACZC,gBAAgB;IAChBC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Animated, { FadeIn, runOnUI } from 'react-native-reanimated';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { forwardRef, createContext, useImperativeHandle } from 'react';
|
|
6
|
+
import { bottomModalStyle as styles } from "../config/bottomSheet.styles.js";
|
|
7
|
+
import { ModalForegroundWrapper, ComponentMounter, DragGesture } from '@shaquillehinds/react-native-essentials';
|
|
8
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
export const BottomSheetContext = /*#__PURE__*/createContext(null);
|
|
10
|
+
export const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
11
|
+
const controller = props.controller;
|
|
12
|
+
useImperativeHandle(ref, () => ({
|
|
13
|
+
animateCloseModal: prop => {
|
|
14
|
+
controller.disableLayoutAnimation.current = true;
|
|
15
|
+
runOnUI(controller.animateModalClose)(prop);
|
|
16
|
+
},
|
|
17
|
+
snapToIndex: snapPointIndex => {
|
|
18
|
+
runOnUI(controller.animateToSnapPointIndex)(snapPointIndex);
|
|
19
|
+
},
|
|
20
|
+
snapToPercentage: percentage => {
|
|
21
|
+
runOnUI(controller.animateToPercentage)(percentage, controller.screenHeight);
|
|
22
|
+
},
|
|
23
|
+
getModalState: () => controller.modalState.current
|
|
24
|
+
}), [controller.screenHeight, controller.modalState.current]);
|
|
25
|
+
return /*#__PURE__*/_jsx(ModalForegroundWrapper, {
|
|
26
|
+
children: /*#__PURE__*/_jsx(DragGesture, {
|
|
27
|
+
minDistance: 15,
|
|
28
|
+
disable: props.dragArea !== 'full',
|
|
29
|
+
onDrag: controller.onDragGesture,
|
|
30
|
+
onDragStart: controller.onDragStartGesture,
|
|
31
|
+
onDragEnd: controller.onDragEndGesture,
|
|
32
|
+
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
33
|
+
style: [styles.bottomSheet, props.style, controller.modalDimensionsStyle, controller.dragAnimatedStyle, {
|
|
34
|
+
backgroundColor: props.backgroundColor,
|
|
35
|
+
bottom: controller.modalDimensionsStyle.bottom + (props.bottomOffset || 0)
|
|
36
|
+
}],
|
|
37
|
+
children: [props.hideBumper ? /*#__PURE__*/_jsx(_Fragment, {}) : props.dragArea === 'bumper' || !props.dragArea ? /*#__PURE__*/_jsx(DragGesture, {
|
|
38
|
+
onDrag: controller.onDragGesture,
|
|
39
|
+
onDragStart: controller.onDragStartGesture,
|
|
40
|
+
onDragEnd: controller.onDragEndGesture,
|
|
41
|
+
children: props.BumperComponent ? /*#__PURE__*/_jsx(props.BumperComponent, {}) : /*#__PURE__*/_jsx(Bumper, {
|
|
42
|
+
...props
|
|
43
|
+
})
|
|
44
|
+
}) : props.BumperComponent ? /*#__PURE__*/_jsx(props.BumperComponent, {}) : /*#__PURE__*/_jsx(Bumper, {
|
|
45
|
+
...props
|
|
46
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
47
|
+
onLayout: controller.onModalContentLayout,
|
|
48
|
+
style: [styles.contentContainer, controller.modalContentAnimatedStyle, props.contentContainerStyle],
|
|
49
|
+
children: /*#__PURE__*/_jsx(BottomSheetContext.Provider, {
|
|
50
|
+
value: {
|
|
51
|
+
scrollY: controller.scrollY,
|
|
52
|
+
onBeginScroll: controller.onBeginScroll,
|
|
53
|
+
onUpdateScroll: controller.onUpdateScroll,
|
|
54
|
+
onEndScroll: controller.onEndScroll,
|
|
55
|
+
scrollableComponentRef: controller.scrollableComponentRef,
|
|
56
|
+
maxScrollOffset: controller.maxScrollOffset,
|
|
57
|
+
inverted: controller.inverted
|
|
58
|
+
},
|
|
59
|
+
children: !props.showContentDelay ? props.children : !props.showContentDelay.type || props.showContentDelay.type === 'opacity' ? /*#__PURE__*/_jsx(Animated.View, {
|
|
60
|
+
style: [controller.contentOpacityStyle],
|
|
61
|
+
children: props.children
|
|
62
|
+
}) : /*#__PURE__*/_jsx(ComponentMounter, {
|
|
63
|
+
component: /*#__PURE__*/_jsx(Animated.View, {
|
|
64
|
+
entering: FadeIn.delay(50).duration(200),
|
|
65
|
+
children: props.children
|
|
66
|
+
}),
|
|
67
|
+
mountDelayInMilliSeconds: props.showContentDelay.timeInMilliSecs,
|
|
68
|
+
showComponent: true,
|
|
69
|
+
setShowComponent: () => true
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
})]
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
function Bumper(props) {
|
|
78
|
+
return /*#__PURE__*/_jsx(View, {
|
|
79
|
+
style: [styles.bumperContainer, {
|
|
80
|
+
backgroundColor: props.backgroundColor
|
|
81
|
+
}, props.bumperContainerStyle],
|
|
82
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
83
|
+
style: [styles.bumper, props.bumperStyle]
|
|
84
|
+
})
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=BottomSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Animated","FadeIn","runOnUI","View","forwardRef","createContext","useImperativeHandle","bottomModalStyle","styles","ModalForegroundWrapper","ComponentMounter","DragGesture","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","BottomSheetContext","BottomSheet","props","ref","controller","animateCloseModal","prop","disableLayoutAnimation","current","animateModalClose","snapToIndex","snapPointIndex","animateToSnapPointIndex","snapToPercentage","percentage","animateToPercentage","screenHeight","getModalState","modalState","children","minDistance","disable","dragArea","onDrag","onDragGesture","onDragStart","onDragStartGesture","onDragEnd","onDragEndGesture","style","bottomSheet","modalDimensionsStyle","dragAnimatedStyle","backgroundColor","bottom","bottomOffset","hideBumper","BumperComponent","Bumper","onLayout","onModalContentLayout","contentContainer","modalContentAnimatedStyle","contentContainerStyle","Provider","value","scrollY","onBeginScroll","onUpdateScroll","onEndScroll","scrollableComponentRef","maxScrollOffset","inverted","showContentDelay","type","contentOpacityStyle","component","entering","delay","duration","mountDelayInMilliSeconds","timeInMilliSecs","showComponent","setShowComponent","bumperContainer","bumperContainerStyle","bumper","bumperStyle"],"sourceRoot":"../../../../src","sources":["BottomSheet/components/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
|