@mustmove/bottom-sheet 1.0.5 → 1.0.6
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/lib/commonjs/components/bottomSheet/BottomSheetContent.js +14 -2
- package/lib/commonjs/components/bottomSheet/BottomSheetContent.js.map +1 -1
- package/lib/module/components/bottomSheet/BottomSheetContent.js +15 -3
- package/lib/module/components/bottomSheet/BottomSheetContent.js.map +1 -1
- package/lib/typescript/components/bottomSheet/BottomSheetContent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/bottomSheet/BottomSheetContent.tsx +19 -1
|
@@ -34,6 +34,7 @@ function BottomSheetContentComponent({
|
|
|
34
34
|
animatedDetentsState,
|
|
35
35
|
animatedSheetHeight,
|
|
36
36
|
animatedKeyboardState,
|
|
37
|
+
animatedScrollableState,
|
|
37
38
|
isInTemporaryPosition
|
|
38
39
|
} = (0, _hooks.useBottomSheetInternal)();
|
|
39
40
|
//#endregion
|
|
@@ -42,7 +43,8 @@ function BottomSheetContentComponent({
|
|
|
42
43
|
const animatedContentHeightMax = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
43
44
|
const {
|
|
44
45
|
containerHeight,
|
|
45
|
-
handleHeight
|
|
46
|
+
handleHeight,
|
|
47
|
+
contentHeight: measuredContentHeight
|
|
46
48
|
} = animatedLayoutState.get();
|
|
47
49
|
|
|
48
50
|
/**
|
|
@@ -94,6 +96,16 @@ function BottomSheetContentComponent({
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
|
|
99
|
+
/**
|
|
100
|
+
* When the keyboard is shown and the content is non-scrollable (VIEW type),
|
|
101
|
+
* ensure the content height doesn't shrink below the measured content height.
|
|
102
|
+
* This prevents clipping of fixed-layout content (e.g. buttons at the bottom)
|
|
103
|
+
* when the container shrinks on Android with adjustResize.
|
|
104
|
+
*/
|
|
105
|
+
if (keyboardStatus === _constants.KEYBOARD_STATUS.SHOWN && measuredContentHeight !== _constants.INITIAL_LAYOUT_VALUE && animatedScrollableState.get().type === _constants.SCROLLABLE_TYPE.VIEW && contentHeight < measuredContentHeight) {
|
|
106
|
+
contentHeight = measuredContentHeight;
|
|
107
|
+
}
|
|
108
|
+
|
|
97
109
|
/**
|
|
98
110
|
* before the container is measured, `contentHeight` value will be below zero,
|
|
99
111
|
* which will lead to freeze the scrollable.
|
|
@@ -101,7 +113,7 @@ function BottomSheetContentComponent({
|
|
|
101
113
|
* @link (https://github.com/gorhom/react-native-bottom-sheet/issues/470)
|
|
102
114
|
*/
|
|
103
115
|
return Math.max(contentHeight, 0);
|
|
104
|
-
}, [animatedLayoutState, animatedKeyboardState, animatedSheetHeight, animatedPosition, isInTemporaryPosition, keyboardBehavior]);
|
|
116
|
+
}, [animatedLayoutState, animatedKeyboardState, animatedSheetHeight, animatedScrollableState, animatedPosition, isInTemporaryPosition, keyboardBehavior]);
|
|
105
117
|
const animatedPaddingBottom = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
106
118
|
const containerHeight = animatedLayoutState.get().containerHeight;
|
|
107
119
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeReanimated","_constants","_hooks","_utilities","_bottomSheetDraggableView","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BottomSheetContentComponent","detached","animationConfigs","overrideReduceMotion","keyboardBehavior","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","children","enableDynamicSizing","overDragResistanceFactor","enableContentPanningGesture","animatedPosition","animatedLayoutState","animatedDetentsState","animatedSheetHeight","animatedKeyboardState","isInTemporaryPosition","useBottomSheetInternal","animatedContentHeightMax","useDerivedValue","containerHeight","handleHeight","INITIAL_LAYOUT_VALUE","status","keyboardStatus","heightWithinContainer","keyboardHeightWithinContainer","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeReanimated","_constants","_hooks","_utilities","_bottomSheetDraggableView","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BottomSheetContentComponent","detached","animationConfigs","overrideReduceMotion","keyboardBehavior","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","children","enableDynamicSizing","overDragResistanceFactor","enableContentPanningGesture","animatedPosition","animatedLayoutState","animatedDetentsState","animatedSheetHeight","animatedKeyboardState","animatedScrollableState","isInTemporaryPosition","useBottomSheetInternal","animatedContentHeightMax","useDerivedValue","containerHeight","handleHeight","contentHeight","measuredContentHeight","INITIAL_LAYOUT_VALUE","status","keyboardStatus","heightWithinContainer","keyboardHeightWithinContainer","Math","max","KEYBOARD_BEHAVIOR","extend","KEYBOARD_STATUS","SHOWN","fillParent","interactive","type","SCROLLABLE_TYPE","VIEW","animatedPaddingBottom","highestDetentPosition","highestSnapPoint","overDragSafePaddingBottom","sqrt","paddingBottom","contentMaskContainerAnimatedStyle","useAnimatedStyle","height","animate","point","configs","contentContainerStyle","useMemo","overflow","DraggableView","BottomSheetDraggableView","Animated","View","jsx","style","BottomSheetContent","exports","memo","displayName"],"sourceRoot":"../../../../src","sources":["components/bottomSheet/BottomSheetContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { memo, useMemo } from 'react';
|
|
4
4
|
import Animated, { useAnimatedStyle, useDerivedValue } from 'react-native-reanimated';
|
|
5
|
-
import { INITIAL_LAYOUT_VALUE, KEYBOARD_BEHAVIOR, KEYBOARD_STATUS } from '../../constants';
|
|
5
|
+
import { INITIAL_LAYOUT_VALUE, KEYBOARD_BEHAVIOR, KEYBOARD_STATUS, SCROLLABLE_TYPE } from '../../constants';
|
|
6
6
|
import { useBottomSheetInternal } from '../../hooks';
|
|
7
7
|
import { animate } from '../../utilities';
|
|
8
8
|
import BottomSheetDraggableView from '../bottomSheetDraggableView';
|
|
@@ -28,6 +28,7 @@ function BottomSheetContentComponent({
|
|
|
28
28
|
animatedDetentsState,
|
|
29
29
|
animatedSheetHeight,
|
|
30
30
|
animatedKeyboardState,
|
|
31
|
+
animatedScrollableState,
|
|
31
32
|
isInTemporaryPosition
|
|
32
33
|
} = useBottomSheetInternal();
|
|
33
34
|
//#endregion
|
|
@@ -36,7 +37,8 @@ function BottomSheetContentComponent({
|
|
|
36
37
|
const animatedContentHeightMax = useDerivedValue(() => {
|
|
37
38
|
const {
|
|
38
39
|
containerHeight,
|
|
39
|
-
handleHeight
|
|
40
|
+
handleHeight,
|
|
41
|
+
contentHeight: measuredContentHeight
|
|
40
42
|
} = animatedLayoutState.get();
|
|
41
43
|
|
|
42
44
|
/**
|
|
@@ -88,6 +90,16 @@ function BottomSheetContentComponent({
|
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
|
|
93
|
+
/**
|
|
94
|
+
* When the keyboard is shown and the content is non-scrollable (VIEW type),
|
|
95
|
+
* ensure the content height doesn't shrink below the measured content height.
|
|
96
|
+
* This prevents clipping of fixed-layout content (e.g. buttons at the bottom)
|
|
97
|
+
* when the container shrinks on Android with adjustResize.
|
|
98
|
+
*/
|
|
99
|
+
if (keyboardStatus === KEYBOARD_STATUS.SHOWN && measuredContentHeight !== INITIAL_LAYOUT_VALUE && animatedScrollableState.get().type === SCROLLABLE_TYPE.VIEW && contentHeight < measuredContentHeight) {
|
|
100
|
+
contentHeight = measuredContentHeight;
|
|
101
|
+
}
|
|
102
|
+
|
|
91
103
|
/**
|
|
92
104
|
* before the container is measured, `contentHeight` value will be below zero,
|
|
93
105
|
* which will lead to freeze the scrollable.
|
|
@@ -95,7 +107,7 @@ function BottomSheetContentComponent({
|
|
|
95
107
|
* @link (https://github.com/gorhom/react-native-bottom-sheet/issues/470)
|
|
96
108
|
*/
|
|
97
109
|
return Math.max(contentHeight, 0);
|
|
98
|
-
}, [animatedLayoutState, animatedKeyboardState, animatedSheetHeight, animatedPosition, isInTemporaryPosition, keyboardBehavior]);
|
|
110
|
+
}, [animatedLayoutState, animatedKeyboardState, animatedSheetHeight, animatedScrollableState, animatedPosition, isInTemporaryPosition, keyboardBehavior]);
|
|
99
111
|
const animatedPaddingBottom = useDerivedValue(() => {
|
|
100
112
|
const containerHeight = animatedLayoutState.get().containerHeight;
|
|
101
113
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useMemo","Animated","useAnimatedStyle","useDerivedValue","INITIAL_LAYOUT_VALUE","KEYBOARD_BEHAVIOR","KEYBOARD_STATUS","useBottomSheetInternal","animate","BottomSheetDraggableView","jsx","_jsx","BottomSheetContentComponent","detached","animationConfigs","overrideReduceMotion","keyboardBehavior","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","children","enableDynamicSizing","overDragResistanceFactor","enableContentPanningGesture","animatedPosition","animatedLayoutState","animatedDetentsState","animatedSheetHeight","animatedKeyboardState","isInTemporaryPosition","animatedContentHeightMax","containerHeight","handleHeight","get","status","keyboardStatus","heightWithinContainer","keyboardHeightWithinContainer","
|
|
1
|
+
{"version":3,"names":["React","memo","useMemo","Animated","useAnimatedStyle","useDerivedValue","INITIAL_LAYOUT_VALUE","KEYBOARD_BEHAVIOR","KEYBOARD_STATUS","SCROLLABLE_TYPE","useBottomSheetInternal","animate","BottomSheetDraggableView","jsx","_jsx","BottomSheetContentComponent","detached","animationConfigs","overrideReduceMotion","keyboardBehavior","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","children","enableDynamicSizing","overDragResistanceFactor","enableContentPanningGesture","animatedPosition","animatedLayoutState","animatedDetentsState","animatedSheetHeight","animatedKeyboardState","animatedScrollableState","isInTemporaryPosition","animatedContentHeightMax","containerHeight","handleHeight","contentHeight","measuredContentHeight","get","status","keyboardStatus","heightWithinContainer","keyboardHeightWithinContainer","Math","max","extend","SHOWN","fillParent","interactive","type","VIEW","animatedPaddingBottom","highestDetentPosition","highestSnapPoint","overDragSafePaddingBottom","sqrt","paddingBottom","contentMaskContainerAnimatedStyle","height","point","configs","contentContainerStyle","overflow","DraggableView","View","style","BottomSheetContent","displayName"],"sourceRoot":"../../../../src","sources":["components/bottomSheet/BottomSheetContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetContent.d.ts","sourceRoot":"","sources":["../../../../src/components/bottomSheet/BottomSheetContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAiB,EACf,KAAK,aAAa,EAGnB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheetContent.d.ts","sourceRoot":"","sources":["../../../../src/components/bottomSheet/BottomSheetContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAiB,EACf,KAAK,aAAa,EAGnB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CAClC,GAAG,IAAI,CACN,gBAAgB,EACd,UAAU,GACV,UAAU,GACV,kBAAkB,GAClB,sBAAsB,GACtB,kBAAkB,CACrB,GACC,0BAA0B,GAC1B,SAAS,CAAC;AAEZ,iBAAS,2BAA2B,CAAC,EACnC,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,qBAwOpB;AAED,eAAO,MAAM,kBAAkB,+DAAoC,CAAC"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
INITIAL_LAYOUT_VALUE,
|
|
10
10
|
KEYBOARD_BEHAVIOR,
|
|
11
11
|
KEYBOARD_STATUS,
|
|
12
|
+
SCROLLABLE_TYPE,
|
|
12
13
|
} from '../../constants';
|
|
13
14
|
import { useBottomSheetInternal } from '../../hooks';
|
|
14
15
|
import type { NullableAccessibilityProps } from '../../types';
|
|
@@ -50,13 +51,14 @@ function BottomSheetContentComponent({
|
|
|
50
51
|
animatedDetentsState,
|
|
51
52
|
animatedSheetHeight,
|
|
52
53
|
animatedKeyboardState,
|
|
54
|
+
animatedScrollableState,
|
|
53
55
|
isInTemporaryPosition,
|
|
54
56
|
} = useBottomSheetInternal();
|
|
55
57
|
//#endregion
|
|
56
58
|
|
|
57
59
|
//#region variables
|
|
58
60
|
const animatedContentHeightMax = useDerivedValue(() => {
|
|
59
|
-
const { containerHeight, handleHeight } = animatedLayoutState.get();
|
|
61
|
+
const { containerHeight, handleHeight, contentHeight: measuredContentHeight } = animatedLayoutState.get();
|
|
60
62
|
|
|
61
63
|
/**
|
|
62
64
|
* if container height is not yet calculated, then we exit the method
|
|
@@ -121,6 +123,21 @@ function BottomSheetContentComponent({
|
|
|
121
123
|
}
|
|
122
124
|
}
|
|
123
125
|
|
|
126
|
+
/**
|
|
127
|
+
* When the keyboard is shown and the content is non-scrollable (VIEW type),
|
|
128
|
+
* ensure the content height doesn't shrink below the measured content height.
|
|
129
|
+
* This prevents clipping of fixed-layout content (e.g. buttons at the bottom)
|
|
130
|
+
* when the container shrinks on Android with adjustResize.
|
|
131
|
+
*/
|
|
132
|
+
if (
|
|
133
|
+
keyboardStatus === KEYBOARD_STATUS.SHOWN &&
|
|
134
|
+
measuredContentHeight !== INITIAL_LAYOUT_VALUE &&
|
|
135
|
+
animatedScrollableState.get().type === SCROLLABLE_TYPE.VIEW &&
|
|
136
|
+
contentHeight < measuredContentHeight
|
|
137
|
+
) {
|
|
138
|
+
contentHeight = measuredContentHeight;
|
|
139
|
+
}
|
|
140
|
+
|
|
124
141
|
/**
|
|
125
142
|
* before the container is measured, `contentHeight` value will be below zero,
|
|
126
143
|
* which will lead to freeze the scrollable.
|
|
@@ -132,6 +149,7 @@ function BottomSheetContentComponent({
|
|
|
132
149
|
animatedLayoutState,
|
|
133
150
|
animatedKeyboardState,
|
|
134
151
|
animatedSheetHeight,
|
|
152
|
+
animatedScrollableState,
|
|
135
153
|
animatedPosition,
|
|
136
154
|
isInTemporaryPosition,
|
|
137
155
|
keyboardBehavior,
|