react-native-unit-components 3.1.1 → 3.1.2-beta.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.
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +2 -0
- package/android/src/main/java/com/unitreactnativecomponents/nativeModules/navigationBar/UNNavigationBarModule.kt +38 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +3 -26
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +37 -37
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.js +6 -4
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js +7 -6
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +21 -12
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +4 -2
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/commonjs/hooks/useSafeAreaDimensions.js +14 -3
- package/lib/commonjs/hooks/useSafeAreaDimensions.js.map +1 -1
- package/lib/commonjs/nativeModulesHelpers/UNNavigationBarHelper.js +17 -0
- package/lib/commonjs/nativeModulesHelpers/UNNavigationBarHelper.js.map +1 -0
- package/lib/commonjs/unitComponentsSdkManager/UnitComponentsSdkManager.js +1 -1
- package/lib/commonjs/unitComponentsSdkManager/UnitComponentsSdkManager.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +4 -27
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +38 -38
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.js +6 -4
- package/lib/module/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js +6 -5
- package/lib/module/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.js +22 -13
- package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +4 -2
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/module/hooks/useSafeAreaDimensions.js +14 -3
- package/lib/module/hooks/useSafeAreaDimensions.js.map +1 -1
- package/lib/module/nativeModulesHelpers/UNNavigationBarHelper.js +11 -0
- package/lib/module/nativeModulesHelpers/UNNavigationBarHelper.js.map +1 -0
- package/lib/module/unitComponentsSdkManager/UnitComponentsSdkManager.js +1 -1
- package/lib/module/unitComponentsSdkManager/UnitComponentsSdkManager.js.map +1 -1
- package/lib/typescript/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts.map +1 -1
- package/lib/typescript/src/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts.map +1 -1
- package/lib/typescript/src/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.d.ts +1 -0
- package/lib/typescript/src/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.d.ts +1 -0
- package/lib/typescript/src/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.d.ts.map +1 -1
- package/lib/typescript/src/helpers/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/src/helpers/BottomSheet/BottomSheet.styles.d.ts +4 -2
- package/lib/typescript/src/helpers/BottomSheet/BottomSheet.styles.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useSafeAreaDimensions.d.ts.map +1 -1
- package/lib/typescript/src/nativeModulesHelpers/UNNavigationBarHelper.d.ts +2 -0
- package/lib/typescript/src/nativeModulesHelpers/UNNavigationBarHelper.d.ts.map +1 -0
- package/lib/typescript/src/unitComponentsSdkManager/UnitComponentsSdkManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +4 -29
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +58 -53
- package/src/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.tsx +7 -4
- package/src/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.tsx +8 -5
- package/src/helpers/BottomSheet/BottomSheet.styles.ts +4 -2
- package/src/helpers/BottomSheet/BottomSheet.tsx +21 -10
- package/src/hooks/useSafeAreaDimensions.ts +15 -3
- package/src/nativeModulesHelpers/UNNavigationBarHelper.ts +14 -0
- package/src/unitComponentsSdkManager/UnitComponentsSdkManager.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
import React, { useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { Animated, BackHandler, Easing, Image, PanResponder,
|
|
3
|
+
import { Animated, BackHandler, Easing, Image, PanResponder, TouchableOpacity, View } from 'react-native';
|
|
4
4
|
import { CloseIcon } from '../../assets/images';
|
|
5
5
|
import { useSafeAreaDimensions } from '../../hooks/useSafeAreaDimensions';
|
|
6
6
|
import { getStylesObject } from './BottomSheet.styles';
|
|
@@ -12,16 +12,13 @@ const BottomSheet = props => {
|
|
|
12
12
|
const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;
|
|
13
13
|
const fadeAnim = useRef(new Animated.Value(0)).current;
|
|
14
14
|
const styles = getStylesObject(fadeAnim);
|
|
15
|
-
|
|
15
|
+
// Initialize to false: BottomSheet mounts fresh each time (conditionally rendered),
|
|
16
|
+
// so useEffect will trigger fadeIn() when isOpen=true on mount.
|
|
17
|
+
const [isPanelOpened, setIsPanelOpened] = useState(false);
|
|
16
18
|
const [contentHeight, setContentHeight] = useState(undefined);
|
|
17
19
|
const {
|
|
18
|
-
insets
|
|
19
|
-
fullScreenHeight,
|
|
20
|
-
isAndroid10AndAbove,
|
|
21
|
-
isEdgeToEdgeActive
|
|
20
|
+
insets
|
|
22
21
|
} = useSafeAreaDimensions();
|
|
23
|
-
// Android 15+ (API 35) enforces edge-to-edge, so marginTop calculation differs
|
|
24
|
-
const isAndroid15AndAbove = Platform.OS === 'android' && Platform.Version >= 35;
|
|
25
22
|
const [currentHeight, setCurrentHeight] = useState(props.sliderMaxHeight);
|
|
26
23
|
const [dy, setDy] = useState(0);
|
|
27
24
|
const isAppInactive = useIsBackFromLongBackground();
|
|
@@ -127,10 +124,25 @@ const BottomSheet = props => {
|
|
|
127
124
|
isPanelOpened && collapse();
|
|
128
125
|
return isPanelOpened;
|
|
129
126
|
};
|
|
127
|
+
|
|
128
|
+
// Track the last height we animated to, so we skip duplicate animations
|
|
129
|
+
// (prevents visual jitter when _setSize fires multiple times with the same height)
|
|
130
|
+
// but still re-animate when the height actually changes.
|
|
131
|
+
const lastAnimatedHeight = useRef(0);
|
|
132
|
+
|
|
133
|
+
// Reset when new content starts loading, so the next opening can animate.
|
|
134
|
+
useEffect(() => {
|
|
135
|
+
if (props.isComponentLoading) {
|
|
136
|
+
lastAnimatedHeight.current = 0;
|
|
137
|
+
}
|
|
138
|
+
}, [props.isComponentLoading]);
|
|
130
139
|
const _setSize = e => {
|
|
131
140
|
const newContentHeight = e.nativeEvent.layout.height;
|
|
132
141
|
setContentHeight(newContentHeight);
|
|
133
|
-
|
|
142
|
+
if (newContentHeight > 0 && newContentHeight !== lastAnimatedHeight.current) {
|
|
143
|
+
lastAnimatedHeight.current = newContentHeight;
|
|
144
|
+
setToContentHeight(newContentHeight);
|
|
145
|
+
}
|
|
134
146
|
};
|
|
135
147
|
const _dismiss = (withAnimation = true) => {
|
|
136
148
|
const {
|
|
@@ -162,13 +174,10 @@ const BottomSheet = props => {
|
|
|
162
174
|
borderTopLeftRadius: isModal ? 0 : styles.container.borderTopLeftRadius,
|
|
163
175
|
borderTopRightRadius: isModal ? 0 : styles.container.borderTopRightRadius,
|
|
164
176
|
height: props.sliderMaxHeight,
|
|
165
|
-
// Android 15+ (edge-to-edge): fullScreenHeight is already the full screen, no adjustment needed
|
|
166
|
-
// Android 10-14: fullScreenHeight includes status bar, but view starts below it, so subtract insets.top
|
|
167
|
-
marginTop: isModal ? 0 : fullScreenHeight - props.sliderMaxHeight - (isAndroid10AndAbove && !isAndroid15AndAbove ? insets.top : 0),
|
|
168
177
|
transform: [{
|
|
169
178
|
translateY: panelHeightValue
|
|
170
179
|
}],
|
|
171
|
-
paddingTop: isModal
|
|
180
|
+
paddingTop: isModal ? insets.top : 0
|
|
172
181
|
}
|
|
173
182
|
}), /*#__PURE__*/React.createElement(View, {
|
|
174
183
|
style: styles.outerContent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","Animated","BackHandler","Easing","Image","PanResponder","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","Animated","BackHandler","Easing","Image","PanResponder","TouchableOpacity","View","CloseIcon","useSafeAreaDimensions","getStylesObject","useIsBackFromLongBackground","BottomSheetNativePlaceType","UNBaseView","BottomSheet","props","isStatic","nativePlace","modal","panelHeightValue","Value","sliderMaxHeight","current","fadeAnim","styles","isPanelOpened","setIsPanelOpened","contentHeight","setContentHeight","undefined","insets","currentHeight","setCurrentHeight","dy","setDy","isAppInactive","_parentPanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","shouldEnableBottomSheetScroll","Math","abs","onPanResponderMove","handleWebViewScroll","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","_dismiss","isOpen","fadeIn","backHandlerSubscription","addEventListener","_onBackPress","id","addListener","e","value","remove","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","animationDuration","easing","quad","onOpen","lastAnimatedHeight","isComponentLoading","_setSize","newContentHeight","nativeEvent","layout","height","withAnimation","onClose","children","isModal","createElement","Fragment","style","outsideContainer","activeOpacity","onPress","animation","_extends","panHandlers","container","borderTopLeftRadius","borderTopRightRadius","transform","translateY","paddingTop","top","outerContent","closeButton","source","onLayout"],"sourceRoot":"../../../../src","sources":["helpers/BottomSheet/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,8 +17,10 @@ export const getStylesObject = fadeAnim => {
|
|
|
17
17
|
opacity: fadeAnim
|
|
18
18
|
},
|
|
19
19
|
container: {
|
|
20
|
-
position: '
|
|
21
|
-
|
|
20
|
+
position: 'absolute',
|
|
21
|
+
bottom: 0,
|
|
22
|
+
left: 0,
|
|
23
|
+
right: 0,
|
|
22
24
|
shadowColor: VARIABLES.COLORS.BLACK,
|
|
23
25
|
shadowOffset: {
|
|
24
26
|
width: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","VARIABLES","getStylesObject","fadeAnim","create","outsideContainer","position","top","bottom","right","left","animation","backgroundColor","flex","opacity","container","shadowColor","COLORS","BLACK","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderTopRightRadius","WHITE","overflow","lineContainer","alignItems","line","borderRadius","marginTop","SILVER_FLAKE","outerContent","innerContent","closeButton","display","justifyContent","padding","zIndex"],"sourceRoot":"../../../../src","sources":["helpers/BottomSheet/BottomSheet.styles.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,SAASC,SAAS,QAAQ,wBAAwB;;AAElD;AACA,OAAO,MAAMC,eAAe,GAAIC,QAAa,IAAK;EAChD,OAAOH,UAAU,CAACI,MAAM,CAAC;IACvBC,gBAAgB,EAAE;MAChBC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,MAAM,EAAE,CAAC;MACTC,KAAK,EAAE,CAAC;MACRC,IAAI,EAAE;IACR,CAAC;IACDC,SAAS,EAAE;MACTC,eAAe,EAAE,OAAO;MACxBC,IAAI,EAAE,CAAC;MACPC,OAAO,EAAEX;IACX,CAAC;IACDY,SAAS,EAAE;MACTT,QAAQ,EAAE,UAAU;
|
|
1
|
+
{"version":3,"names":["StyleSheet","VARIABLES","getStylesObject","fadeAnim","create","outsideContainer","position","top","bottom","right","left","animation","backgroundColor","flex","opacity","container","shadowColor","COLORS","BLACK","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderTopRightRadius","WHITE","overflow","lineContainer","alignItems","line","borderRadius","marginTop","SILVER_FLAKE","outerContent","innerContent","closeButton","display","justifyContent","padding","zIndex"],"sourceRoot":"../../../../src","sources":["helpers/BottomSheet/BottomSheet.styles.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,SAASC,SAAS,QAAQ,wBAAwB;;AAElD;AACA,OAAO,MAAMC,eAAe,GAAIC,QAAa,IAAK;EAChD,OAAOH,UAAU,CAACI,MAAM,CAAC;IACvBC,gBAAgB,EAAE;MAChBC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,MAAM,EAAE,CAAC;MACTC,KAAK,EAAE,CAAC;MACRC,IAAI,EAAE;IACR,CAAC;IACDC,SAAS,EAAE;MACTC,eAAe,EAAE,OAAO;MACxBC,IAAI,EAAE,CAAC;MACPC,OAAO,EAAEX;IACX,CAAC;IACDY,SAAS,EAAE;MACTT,QAAQ,EAAE,UAAU;MACpBE,MAAM,EAAE,CAAC;MACTE,IAAI,EAAE,CAAC;MACPD,KAAK,EAAE,CAAC;MACRO,WAAW,EAAEf,SAAS,CAACgB,MAAM,CAACC,KAAK;MACnCC,YAAY,EAAE;QACZC,KAAK,EAAE,CAAC;QACRC,MAAM,EAAE;MACV,CAAC;MACDC,aAAa,EAAE,IAAI;MACnBC,YAAY,EAAE,IAAI;MAClBC,SAAS,EAAE,EAAE;MACbC,mBAAmB,EAAE,EAAE;MACvBC,oBAAoB,EAAE,EAAE;MACxBd,eAAe,EAAEX,SAAS,CAACgB,MAAM,CAACU,KAAK;MACvCC,QAAQ,EAAE;IACZ,CAAC;IACDC,aAAa,EAAE;MACbJ,mBAAmB,EAAE,EAAE;MACvBC,oBAAoB,EAAE,EAAE;MACxBI,UAAU,EAAE;IACd,CAAC;IACDC,IAAI,EAAE;MACJX,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,CAAC;MACTW,YAAY,EAAE,CAAC;MACfC,SAAS,EAAE,EAAE;MACbrB,eAAe,EAAEX,SAAS,CAACgB,MAAM,CAACiB;IACpC,CAAC;IACDC,YAAY,EAAE;MACZtB,IAAI,EAAE,CAAC;IACT,CAAC;IACDuB,YAAY,EAAE;MACZvB,IAAI,EAAE,CAAC;IACT,CAAC;IACDwB,WAAW,EAAE;MACX/B,QAAQ,EAAE,UAAU;MACpBgC,OAAO,EAAE,MAAM;MACfR,UAAU,EAAE,QAAQ;MACpBS,cAAc,EAAE,QAAQ;MACxBnB,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVT,eAAe,EAAEX,SAAS,CAACgB,MAAM,CAACU,KAAK;MACvCK,YAAY,EAAE,EAAE;MAChBQ,OAAO,EAAE,CAAC;MACVjC,GAAG,EAAE,EAAE;MACPE,KAAK,EAAE,EAAE;MACTgC,MAAM,EAAE;IACV;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Dimensions, Platform } from 'react-native';
|
|
2
2
|
import { initialWindowMetrics } from 'react-native-safe-area-context';
|
|
3
|
+
import { isNavigationBarTranslucent } from '../nativeModulesHelpers/UNNavigationBarHelper';
|
|
3
4
|
const isAndroid = Platform.OS === 'android';
|
|
4
5
|
const isAndroid10To14 = isAndroid && Platform.Version >= 29 && Platform.Version < 35;
|
|
5
6
|
const isAndroid15AndAbove = isAndroid && Platform.Version >= 35;
|
|
@@ -12,11 +13,19 @@ const insets = initialWindowMetrics?.insets ?? {
|
|
|
12
13
|
const windowHeight = Dimensions.get('window').height;
|
|
13
14
|
const screenHeight = Dimensions.get('screen').height;
|
|
14
15
|
|
|
15
|
-
// Detect edge-to-edge by comparing window to screen height
|
|
16
|
-
// Edge-to-edge ON: windowHeight ≈ screenHeight | OFF: windowHeight < screenHeight
|
|
16
|
+
// Detect edge-to-edge on API 35+ by comparing window to screen height
|
|
17
17
|
const heightDifference = Math.abs(screenHeight - windowHeight);
|
|
18
18
|
const isEdgeToEdgeActive = isAndroid15AndAbove && heightDifference < 10;
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
// Resolved once at module load time; defaults to false until resolved.
|
|
21
|
+
// The native call is fast (reads a window flag), so it resolves before
|
|
22
|
+
// any bottom sheet is opened.
|
|
23
|
+
let _navBarTranslucent = false;
|
|
24
|
+
if (isAndroid) {
|
|
25
|
+
isNavigationBarTranslucent().then(result => {
|
|
26
|
+
_navBarTranslucent = result;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
20
29
|
const calculateFullScreenHeight = () => {
|
|
21
30
|
if (isAndroid15AndAbove) {
|
|
22
31
|
return isEdgeToEdgeActive ? screenHeight : windowHeight;
|
|
@@ -38,6 +47,8 @@ const calculateContentHeight = () => {
|
|
|
38
47
|
};
|
|
39
48
|
const contentHeight = calculateContentHeight();
|
|
40
49
|
export const useSafeAreaDimensions = () => {
|
|
50
|
+
const shouldApplyBottomInset = isEdgeToEdgeActive || _navBarTranslucent;
|
|
51
|
+
const effectiveBottomInset = shouldApplyBottomInset ? insets.bottom : 0;
|
|
41
52
|
return {
|
|
42
53
|
insets,
|
|
43
54
|
fullScreenHeight,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dimensions","Platform","initialWindowMetrics","isAndroid","OS","isAndroid10To14","Version","isAndroid15AndAbove","insets","top","bottom","left","right","windowHeight","get","height","screenHeight","heightDifference","Math","abs","isEdgeToEdgeActive","
|
|
1
|
+
{"version":3,"names":["Dimensions","Platform","initialWindowMetrics","isNavigationBarTranslucent","isAndroid","OS","isAndroid10To14","Version","isAndroid15AndAbove","insets","top","bottom","left","right","windowHeight","get","height","screenHeight","heightDifference","Math","abs","isEdgeToEdgeActive","_navBarTranslucent","then","result","calculateFullScreenHeight","fullScreenHeight","calculateContentHeight","contentHeight","useSafeAreaDimensions","shouldApplyBottomInset","effectiveBottomInset","isAndroid10AndAbove"],"sourceRoot":"../../../src","sources":["hooks/useSafeAreaDimensions.ts"],"mappings":"AAAA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,cAAc;AACnD,SAASC,oBAAoB,QAAQ,gCAAgC;AACrE,SAASC,0BAA0B,QAAQ,+CAA+C;AAE1F,MAAMC,SAAS,GAAGH,QAAQ,CAACI,EAAE,KAAK,SAAS;AAC3C,MAAMC,eAAe,GAAGF,SAAS,IAAIH,QAAQ,CAACM,OAAO,IAAI,EAAE,IAAIN,QAAQ,CAACM,OAAO,GAAG,EAAE;AACpF,MAAMC,mBAAmB,GAAGJ,SAAS,IAAIH,QAAQ,CAACM,OAAO,IAAI,EAAE;AAE/D,MAAME,MAAM,GAAGP,oBAAoB,EAAEO,MAAM,IAAI;EAAEC,GAAG,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EAAEC,IAAI,EAAE,CAAC;EAAEC,KAAK,EAAE;AAAE,CAAC;AACvF,MAAMC,YAAY,GAAGd,UAAU,CAACe,GAAG,CAAC,QAAQ,CAAC,CAACC,MAAM;AACpD,MAAMC,YAAY,GAAGjB,UAAU,CAACe,GAAG,CAAC,QAAQ,CAAC,CAACC,MAAM;;AAEpD;AACA,MAAME,gBAAgB,GAAGC,IAAI,CAACC,GAAG,CAACH,YAAY,GAAGH,YAAY,CAAC;AAC9D,MAAMO,kBAAkB,GAAGb,mBAAmB,IAAIU,gBAAgB,GAAG,EAAE;;AAEvE;AACA;AACA;AACA,IAAII,kBAAkB,GAAG,KAAK;AAE9B,IAAIlB,SAAS,EAAE;EACbD,0BAA0B,CAAC,CAAC,CAACoB,IAAI,CAAEC,MAAM,IAAK;IAC5CF,kBAAkB,GAAGE,MAAM;EAC7B,CAAC,CAAC;AACJ;AAEA,MAAMC,yBAAyB,GAAGA,CAAA,KAAc;EAC9C,IAAIjB,mBAAmB,EAAE;IACvB,OAAOa,kBAAkB,GAAGJ,YAAY,GAAGH,YAAY;EACzD,CAAC,MAAM,IAAIR,eAAe,EAAE;IAC1B;IACA,OAAOW,YAAY;EACrB;EACA,OAAOH,YAAY;AACrB,CAAC;AAED,MAAMY,gBAAgB,GAAGD,yBAAyB,CAAC,CAAC;AAEpD,MAAME,sBAAsB,GAAGA,CAAA,KAAc;EAC3C,IAAInB,mBAAmB,IAAI,CAACa,kBAAkB,EAAE;IAC9C,OAAOP,YAAY;EACrB;EACA,IAAIR,eAAe,EAAE;IACnB,OAAOoB,gBAAgB,GAAGjB,MAAM,CAACC,GAAG,GAAGD,MAAM,CAACE,MAAM;EACtD;EACA,OAAOe,gBAAgB,GAAGjB,MAAM,CAACC,GAAG;AACtC,CAAC;AAED,MAAMkB,aAAa,GAAGD,sBAAsB,CAAC,CAAC;AAE9C,OAAO,MAAME,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAMC,sBAAsB,GAAGT,kBAAkB,IAAIC,kBAAkB;EACvE,MAAMS,oBAAoB,GAAGD,sBAAsB,GAAGrB,MAAM,CAACE,MAAM,GAAG,CAAC;EAEvE,OAAO;IACLF,MAAM;IACNiB,gBAAgB;IAChBE,aAAa;IACbI,mBAAmB,EAAE5B,SAAS,IAAIH,QAAQ,CAACM,OAAO,IAAI,EAAE;IACxDc,kBAAkB;IAClBU;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Platform, NativeModules } from 'react-native';
|
|
2
|
+
const UNNavigationBarModule = Platform.OS === 'android' ? NativeModules.UNNavigationBarModule : undefined;
|
|
3
|
+
export async function isNavigationBarTranslucent() {
|
|
4
|
+
if (!UNNavigationBarModule) return false;
|
|
5
|
+
try {
|
|
6
|
+
return await UNNavigationBarModule.isNavigationBarTranslucent();
|
|
7
|
+
} catch {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=UNNavigationBarHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","NativeModules","UNNavigationBarModule","OS","undefined","isNavigationBarTranslucent"],"sourceRoot":"../../../src","sources":["nativeModulesHelpers/UNNavigationBarHelper.ts"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,cAAc;AAEtD,MAAMC,qBAAqB,GAAGF,QAAQ,CAACG,EAAE,KAAK,SAAS,GACnDF,aAAa,CAACC,qBAAqB,GACnCE,SAAS;AAEb,OAAO,eAAeC,0BAA0BA,CAAA,EAAqB;EACnE,IAAI,CAACH,qBAAqB,EAAE,OAAO,KAAK;EACxC,IAAI;IACF,OAAO,MAAMA,qBAAqB,CAACG,0BAA0B,CAAC,CAAC;EACjE,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ import UNSnapshotProtectionHelper from '../nativeModulesHelpers/UNSanpshotProtec
|
|
|
14
14
|
import { loadIosFontBase64 } from '../nativeModulesHelpers/UNFontFileHelper/UNFontFileHelper';
|
|
15
15
|
export class UnitComponentsSDK {
|
|
16
16
|
static securitySettings = UNComponentsSDKConstants.securitySettings;
|
|
17
|
-
static sdkVersion = '3.1.
|
|
17
|
+
static sdkVersion = '3.1.2-beta.2';
|
|
18
18
|
static iosFontBase64Map = {};
|
|
19
19
|
static init = async (env, theme, language, fonts, webVersioningStrategy = UNComponentsSDKConstants.webSDKRecommendedStrategy, securitySettings = UNComponentsSDKConstants.securitySettings) => {
|
|
20
20
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","fetchUnitScript","UnitComponentsUiManager","warnClientIfNeeded","UNComponentsSDKConstants","setTheme","setLanguage","setCustomerToken","store","UserDataKeys","UNStoreManagerHelper","UnitComponentsHelpersManager","UNSecurityManagerHelper","UNComponentsSnapshotProtectionStrategy","UNSnapshotProtectionHelper","loadIosFontBase64","UnitComponentsSDK","securitySettings","sdkVersion","iosFontBase64Map","init","env","theme","language","fonts","webVersioningStrategy","webSDKRecommendedStrategy","ui","helpers","isJailbroke","isDeviceJailbroke","Error","OS","dispatch","shouldProtectFromSnapshot","snapshotProtectionStrategy","None","setIosSecurity","e","console","log","isInitialized","undefined","setPushProvisioningModule","pushProvisionModule","getPushProvisionModule","getSecuritySettings","setSignedNonce","signedNonce","getEnv","getWebVersioningStrategy","getFonts","getSignedNonce","customerToken","getSdkVersion","cleanUserData","cleanValue","unitCustomerToken","unitVerifiedCustomerToken","unitApplicationFormVerifiedToken"],"sourceRoot":"../../../src","sources":["unitComponentsSdkManager/UnitComponentsSdkManager.ts"],"mappings":"AAAA,SAAwBA,QAAQ,QAAQ,cAAc;AACtD,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,uBAAuB,QAAQ,mDAAmD;AAE3F,SAASC,kBAAkB,QAAQ,sCAAsC;AACzE,SAASC,wBAAwB,QAAQ,+BAA+B;AAExE,SAASC,QAAQ,EAAEC,WAAW,EAAEC,gBAAgB,QAAQ,8BAA8B;AACtF,SAASC,KAAK,QAAQ,gBAAgB;AAEtC,SAASC,YAAY,QAAQ,mCAAmC;AAChE,OAAOC,oBAAoB,MAAM,iEAAiE;AAClG,SAASC,4BAA4B,QAAQ,6DAA6D;AAC1G,OAAOC,uBAAuB,MAAM,0CAA0C;AAC9E,SAAuCC,sCAAsC,QAAQ,kCAAkC;AACvH,OAAOC,0BAA0B,MAAM,+EAA+E;AACtH,SAASC,iBAAiB,QAAQ,2DAA2D;AAE7F,OAAO,MAAMC,iBAAiB,CAAC;EAM7B,OAAiBC,gBAAgB,GAAiCb,wBAAwB,CAACa,gBAAgB;EAI3G,OAAiBC,UAAU,GAAG,
|
|
1
|
+
{"version":3,"names":["Platform","fetchUnitScript","UnitComponentsUiManager","warnClientIfNeeded","UNComponentsSDKConstants","setTheme","setLanguage","setCustomerToken","store","UserDataKeys","UNStoreManagerHelper","UnitComponentsHelpersManager","UNSecurityManagerHelper","UNComponentsSnapshotProtectionStrategy","UNSnapshotProtectionHelper","loadIosFontBase64","UnitComponentsSDK","securitySettings","sdkVersion","iosFontBase64Map","init","env","theme","language","fonts","webVersioningStrategy","webSDKRecommendedStrategy","ui","helpers","isJailbroke","isDeviceJailbroke","Error","OS","dispatch","shouldProtectFromSnapshot","snapshotProtectionStrategy","None","setIosSecurity","e","console","log","isInitialized","undefined","setPushProvisioningModule","pushProvisionModule","getPushProvisionModule","getSecuritySettings","setSignedNonce","signedNonce","getEnv","getWebVersioningStrategy","getFonts","getSignedNonce","customerToken","getSdkVersion","cleanUserData","cleanValue","unitCustomerToken","unitVerifiedCustomerToken","unitApplicationFormVerifiedToken"],"sourceRoot":"../../../src","sources":["unitComponentsSdkManager/UnitComponentsSdkManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UNBottomSheetComponent.constants.d.ts","sourceRoot":"","sources":["../../../../../src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UNBottomSheetComponent.constants.d.ts","sourceRoot":"","sources":["../../../../../src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4CAA4C,MAAM,CAAC;AAIhE,eAAO,MAAM,oBAAoB,QAAiF,CAAC;AAEnH,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,gBAAgB,QAA+B,CAAC"}
|
package/lib/typescript/src/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UNBottomSheetComponent.d.ts","sourceRoot":"","sources":["../../../../../src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"UNBottomSheetComponent.d.ts","sourceRoot":"","sources":["../../../../../src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx"],"names":[],"mappings":";;AAmPA,wBAAsD"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { NativeComponentData } from '../../../../types/internal/bottomSheet.types';
|
|
3
3
|
export interface UNBottomSheetNativeComponentProps {
|
|
4
4
|
nativeComponentData: NativeComponentData;
|
|
5
|
+
containerHeight: number;
|
|
5
6
|
}
|
|
6
7
|
declare const UNBottomSheetNativeComponent: (props: UNBottomSheetNativeComponentProps) => JSX.Element;
|
|
7
8
|
export default UNBottomSheetNativeComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UNBottomSheetNativeComponent.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,8CAA8C,CAAC;AAiBtD,MAAM,WAAW,iCAAiC;IAChD,mBAAmB,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"UNBottomSheetNativeComponent.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/UNBottomSheetComponent/components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,8CAA8C,CAAC;AAiBtD,MAAM,WAAW,iCAAiC;IAChD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,4BAA4B,UAAW,iCAAiC,gBAoI7E,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
|
|
@@ -5,6 +5,7 @@ export interface UNBottomSheetSlotComponentProps {
|
|
|
5
5
|
requestRenderingEvent: RequestRenderingEvent;
|
|
6
6
|
componentName?: WebComponentType;
|
|
7
7
|
componentResourceId?: string;
|
|
8
|
+
containerHeight: number;
|
|
8
9
|
}
|
|
9
10
|
declare const UNBottomSheetSlotComponent: (props: UNBottomSheetSlotComponentProps) => JSX.Element;
|
|
10
11
|
export default UNBottomSheetSlotComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UNBottomSheetSlotComponent.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAoB,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAUnG,OAAO,EACL,qBAAqB,EAEtB,MAAM,yDAAyD,CAAC;AA2BjE,MAAM,WAAW,+BAA+B;IAC9C,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"UNBottomSheetSlotComponent.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/UNBottomSheetComponent/components/UNBottomSheetSlotComponent/UNBottomSheetSlotComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAoB,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAUnG,OAAO,EACL,qBAAqB,EAEtB,MAAM,yDAAyD,CAAC;AA2BjE,MAAM,WAAW,+BAA+B;IAC9C,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,0BAA0B,UAAW,+BAA+B,gBA6LzE,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAetE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAGpF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,OAAO,CAAC;IAClC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,6BAA6B,EAAE,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,WAAW,UAAW,gBAAgB,gBAuN3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -12,8 +12,10 @@ export declare const getStylesObject: (fadeAnim: any) => {
|
|
|
12
12
|
opacity: any;
|
|
13
13
|
};
|
|
14
14
|
container: {
|
|
15
|
-
position: "
|
|
16
|
-
|
|
15
|
+
position: "absolute";
|
|
16
|
+
bottom: number;
|
|
17
|
+
left: number;
|
|
18
|
+
right: number;
|
|
17
19
|
shadowColor: string;
|
|
18
20
|
shadowOffset: {
|
|
19
21
|
width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.styles.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/BottomSheet/BottomSheet.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,aAAc,GAAG
|
|
1
|
+
{"version":3,"file":"BottomSheet.styles.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/BottomSheet/BottomSheet.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,aAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiE5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSafeAreaDimensions.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useSafeAreaDimensions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSafeAreaDimensions.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useSafeAreaDimensions.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,qBAAqB;;;;;;;CAYjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UNNavigationBarHelper.d.ts","sourceRoot":"","sources":["../../../../src/nativeModulesHelpers/UNNavigationBarHelper.ts"],"names":[],"mappings":"AAMA,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC,CAOnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitComponentsSdkManager.d.ts","sourceRoot":"","sources":["../../../../src/unitComponentsSdkManager/UnitComponentsSdkManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6DAA6D,CAAC;AAE3G,OAAO,EAAE,4BAA4B,EAA0C,MAAM,kCAAkC,CAAC;AAIxH,qBAAa,iBAAiB;IAC5B,OAAc,EAAE,EAAE,uBAAuB,CAAC;IAC1C,OAAc,OAAO,EAAE,4BAA4B,CAAC;IAEpD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;IAC1E,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAA6C;IAC5G,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,aAAa,CAAC;IAC5D,SAAS,CAAC,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"UnitComponentsSdkManager.d.ts","sourceRoot":"","sources":["../../../../src/unitComponentsSdkManager/UnitComponentsSdkManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6DAA6D,CAAC;AAE3G,OAAO,EAAE,4BAA4B,EAA0C,MAAM,kCAAkC,CAAC;AAIxH,qBAAa,iBAAiB;IAC5B,OAAc,EAAE,EAAE,uBAAuB,CAAC;IAC1C,OAAc,OAAO,EAAE,4BAA4B,CAAC;IAEpD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;IAC1E,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAA6C;IAC5G,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,aAAa,CAAC;IAC5D,SAAS,CAAC,MAAM,CAAC,UAAU,SAAkB;IAC7C,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAErD,OAAc,IAAI,QACX,uBAAuB,UACpB,MAAM,aACH,MAAM,UACT,OAAO,0BACQ,iCAAiC,qBACtC,4BAA4B,mBA4B9C;IAEF,OAAc,aAAa,gBAEzB;IAEF,OAAc,yBAAyB,yBAA0B,oBAAoB,UAEnF;IAEF,OAAc,sBAAsB,+DAElC;IAEF,OAAc,mBAAmB,qCAE/B;IAEF;;OAEG;IACH,OAAc,cAAc,gBAAiB,MAAM,UAEjD;IAEF,OAAc,MAAM,4CAElB;IAEF,OAAc,wBAAwB,0CAEpC;IAEF,OAAc,QAAQ,4BAEpB;IAEF;;OAEG;IACH,OAAc,cAAc,2BAE1B;IAEF,OAAc,gBAAgB,kBAAmB,MAAM,UAErD;IAEF,OAAc,aAAa,eAEzB;IAEF,OAAc,aAAa,aAIzB;CAEH"}
|
package/package.json
CHANGED
|
@@ -1,35 +1,10 @@
|
|
|
1
|
-
import { Dimensions
|
|
2
|
-
import { initialWindowMetrics } from 'react-native-safe-area-context';
|
|
1
|
+
import { Dimensions } from 'react-native';
|
|
3
2
|
|
|
4
3
|
export const BOTTOM_SHEET_OVER_FULLSCREEN_PERCENTAGE_SIZE = 0.9;
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const isAndroid = Platform.OS === 'android';
|
|
10
|
-
const isAndroid15AndAbove = isAndroid && Platform.Version >= 35;
|
|
11
|
-
|
|
12
|
-
// Android 15+ edge-to-edge detection
|
|
13
|
-
const isEdgeToEdgeActive = isAndroid15AndAbove && Math.abs(screenHeight - windowHeight) < 10;
|
|
14
|
-
|
|
15
|
-
// Calculate overFullScreenHeight based on platform
|
|
16
|
-
const calculateOverFullScreenHeight = (): number => {
|
|
17
|
-
if (!isAndroid) {
|
|
18
|
-
// iOS: simple percentage of window height
|
|
19
|
-
return windowHeight * BOTTOM_SHEET_OVER_FULLSCREEN_PERCENTAGE_SIZE;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// Android: adjust for edge-to-edge status
|
|
23
|
-
const topMargin = screenHeight * (1 - BOTTOM_SHEET_OVER_FULLSCREEN_PERCENTAGE_SIZE);
|
|
24
|
-
if (isEdgeToEdgeActive) {
|
|
25
|
-
return screenHeight - topMargin;
|
|
26
|
-
} else {
|
|
27
|
-
// Edge-to-edge opted out: status bar is outside window, adjust margin
|
|
28
|
-
return windowHeight - (topMargin - statusBarHeight);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export const overFullScreenHeight = calculateOverFullScreenHeight();
|
|
5
|
+
// Fallback value for components rendered outside the measured container (e.g. UNAddToWalletComponent).
|
|
6
|
+
// The bottom sheet itself uses layout-measured containerHeight instead of this value.
|
|
7
|
+
export const overFullScreenHeight = Dimensions.get('screen').height * BOTTOM_SHEET_OVER_FULLSCREEN_PERCENTAGE_SIZE;
|
|
33
8
|
|
|
34
9
|
export const TOP_PADDING = 48;
|
|
35
10
|
export const BOTTOM_PADDING = 24;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import React, { useEffect, useState } from 'react';
|
|
3
|
-
import { View } from 'react-native';
|
|
3
|
+
import { LayoutChangeEvent, View } from 'react-native';
|
|
4
4
|
import BottomSheet from '../../helpers/BottomSheet/BottomSheet';
|
|
5
5
|
import { RequestRenderingEvent, UnitComponentsMessage } from '../../messages/webMessages/unitComponentsMessages';
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import { withReduxStore } from '../../helpers/store/helpers';
|
|
20
20
|
import { useEventListener } from '../../hooks/useEventListener';
|
|
21
21
|
import { useDispatch, useSelector } from 'react-redux';
|
|
22
|
-
import {
|
|
22
|
+
import { BOTTOM_SHEET_OVER_FULLSCREEN_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';
|
|
23
23
|
import { RootState } from '../../store';
|
|
24
24
|
import {
|
|
25
25
|
resetBottomSheetSlice,
|
|
@@ -34,11 +34,9 @@ import UNBottomSheetSlotComponent from './components/UNBottomSheetSlotComponent/
|
|
|
34
34
|
import UNBottomSheetNativeComponent from './components/UNBottomSheetNativeComponent/UNBottomSheetNativeComponent';
|
|
35
35
|
import { WebComponentType } from '../../types/internal/webComponent.types';
|
|
36
36
|
import { getNativeComponentDataFromEvent } from './UNBottomSheetComponent.utils';
|
|
37
|
-
import { useSafeAreaDimensions } from '../../hooks/useSafeAreaDimensions';
|
|
38
37
|
|
|
39
38
|
const UNBottomSheetComponent = () => {
|
|
40
39
|
const dispatch = useDispatch();
|
|
41
|
-
const { fullScreenHeight } = useSafeAreaDimensions();
|
|
42
40
|
|
|
43
41
|
const isBottomSheetActive = useSelector((state: RootState) => state.bottomSheet.isBottomSheetActive);
|
|
44
42
|
const isComponentLoading = useSelector((state: RootState) => state.bottomSheet.isComponentLoading);
|
|
@@ -49,55 +47,58 @@ const UNBottomSheetComponent = () => {
|
|
|
49
47
|
const shouldEnableBottomSheetScroll = useSelector((state: RootState) => state.bottomSheet.shouldEnableBottomSheetScroll);
|
|
50
48
|
const [renderingType, setRenderingType] = useState<BottomSheetRenderingType>();
|
|
51
49
|
const [height, setHeight] = useState(0);
|
|
52
|
-
const [sliderMaxHeight, setSliderMaxHeight] = useState(
|
|
50
|
+
const [sliderMaxHeight, setSliderMaxHeight] = useState(0);
|
|
51
|
+
const [containerHeight, setContainerHeight] = useState(0);
|
|
53
52
|
const [nativeComponentData, setNativeComponentData] = useState<NativeComponentData>();
|
|
54
53
|
const [requestRenderingEventData, setRequestRenderingEventData] = useState<RequestRenderingEvent>();
|
|
55
54
|
const [componentParams, setComponentParams] = useState<{
|
|
56
55
|
componentName?: WebComponentType,
|
|
57
56
|
componentResourceId?: string
|
|
58
57
|
}>();
|
|
59
|
-
|
|
58
|
+
|
|
60
59
|
const [currentBottomSheetRenderingMessage, setCurrentBottomSheetRenderingMessage] = useState<BottomSheetRenderingMessage>();
|
|
61
60
|
const styles = getStylesObject();
|
|
62
61
|
|
|
62
|
+
const handleContainerLayout = (e: LayoutChangeEvent) => {
|
|
63
|
+
setContainerHeight(e.nativeEvent.layout.height);
|
|
64
|
+
};
|
|
65
|
+
|
|
63
66
|
useEffect(() => {
|
|
64
|
-
|
|
67
|
+
if (containerHeight === 0) return;
|
|
68
|
+
|
|
69
|
+
const computedOverFullScreenHeight = containerHeight * BOTTOM_SHEET_OVER_FULLSCREEN_PERCENTAGE_SIZE;
|
|
70
|
+
|
|
71
|
+
// Always set sliderMaxHeight when containerHeight is available,
|
|
72
|
+
// so the BottomSheet can mount and render children (which may need to load before reporting height).
|
|
73
|
+
if (nativePlace === BottomSheetNativePlaceType.modal) {
|
|
74
|
+
setSliderMaxHeight(containerHeight);
|
|
75
|
+
} else {
|
|
76
|
+
setSliderMaxHeight(computedOverFullScreenHeight);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (!shouldShowBottomSheet) {
|
|
80
|
+
setHeight(0);
|
|
81
|
+
} else {
|
|
82
|
+
// For overFullScreen/modal, set the known height immediately so the WebView
|
|
83
|
+
// has space to load (older Android WebViews won't fire events with 0 height).
|
|
84
|
+
// For menu/contentHeight, wait until content reports its height.
|
|
65
85
|
switch (nativePlace) {
|
|
66
|
-
// In the case of overFullScreen, set the height to the overFullScreenHeight.
|
|
67
86
|
case BottomSheetNativePlaceType.overFullScreen:
|
|
68
|
-
setHeight(
|
|
87
|
+
setHeight(computedOverFullScreenHeight);
|
|
69
88
|
break;
|
|
70
89
|
case BottomSheetNativePlaceType.modal:
|
|
71
|
-
setHeight(
|
|
90
|
+
setHeight(containerHeight);
|
|
72
91
|
break;
|
|
73
92
|
default:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
setHeight(
|
|
93
|
+
if (!isComponentLoading && componentHeight) {
|
|
94
|
+
setHeight(componentHeight < computedOverFullScreenHeight ? componentHeight : computedOverFullScreenHeight);
|
|
95
|
+
} else {
|
|
96
|
+
setHeight(0);
|
|
78
97
|
}
|
|
79
98
|
break;
|
|
80
99
|
}
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const setSliderMaxHeightFromNativePlace = () => {
|
|
84
|
-
if (nativePlace === BottomSheetNativePlaceType.modal) {
|
|
85
|
-
setSliderMaxHeight(fullScreenHeight);
|
|
86
|
-
} else {
|
|
87
|
-
setSliderMaxHeight(overFullScreenHeight);
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
// Check if the inner contained component is still loading or the bottom sheet should not be shown.
|
|
92
|
-
if (isComponentLoading || !shouldShowBottomSheet) {
|
|
93
|
-
// If so, hide the bottom sheet by setting the height to 0.
|
|
94
|
-
setHeight(0);
|
|
95
|
-
} else {
|
|
96
|
-
// If not, display the bottom sheet by calculating and setting the height based on the native place type.
|
|
97
|
-
setHeightFromNativePlace();
|
|
98
|
-
setSliderMaxHeightFromNativePlace();
|
|
99
100
|
}
|
|
100
|
-
}, [componentHeight, nativePlace, isComponentLoading, shouldShowBottomSheet]);
|
|
101
|
+
}, [componentHeight, nativePlace, isComponentLoading, shouldShowBottomSheet, containerHeight]);
|
|
101
102
|
|
|
102
103
|
useEffect(() => {
|
|
103
104
|
const resetBottomSheetManagerState = () => {
|
|
@@ -106,7 +107,7 @@ const UNBottomSheetComponent = () => {
|
|
|
106
107
|
setNativeComponentData(undefined);
|
|
107
108
|
setRenderingType(undefined);
|
|
108
109
|
setHeight(0);
|
|
109
|
-
setSliderMaxHeight(
|
|
110
|
+
setSliderMaxHeight(0);
|
|
110
111
|
};
|
|
111
112
|
|
|
112
113
|
if (!isBottomSheetActive) {
|
|
@@ -198,6 +199,7 @@ const UNBottomSheetComponent = () => {
|
|
|
198
199
|
requestRenderingEvent={requestRenderingEventData}
|
|
199
200
|
componentName={componentParams?.componentName}
|
|
200
201
|
componentResourceId={componentParams?.componentResourceId}
|
|
202
|
+
containerHeight={containerHeight}
|
|
201
203
|
/>
|
|
202
204
|
) : null;
|
|
203
205
|
|
|
@@ -205,6 +207,7 @@ const UNBottomSheetComponent = () => {
|
|
|
205
207
|
return nativeComponentData ? (
|
|
206
208
|
<UNBottomSheetNativeComponent
|
|
207
209
|
nativeComponentData={nativeComponentData}
|
|
210
|
+
containerHeight={containerHeight}
|
|
208
211
|
/>
|
|
209
212
|
) : null;
|
|
210
213
|
|
|
@@ -212,26 +215,28 @@ const UNBottomSheetComponent = () => {
|
|
|
212
215
|
return null;
|
|
213
216
|
}
|
|
214
217
|
};
|
|
218
|
+
|
|
219
|
+
if (!isBottomSheetActive) return null;
|
|
220
|
+
|
|
215
221
|
return (
|
|
216
|
-
<View
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
</BottomSheet>
|
|
222
|
+
<View style={styles.container} onLayout={handleContainerLayout}>
|
|
223
|
+
{containerHeight > 0 && sliderMaxHeight > 0 && (
|
|
224
|
+
<BottomSheet
|
|
225
|
+
isOpen={isBottomSheetActive}
|
|
226
|
+
onOpen={() => dispatch(setIsBottomSheetActive(true))}
|
|
227
|
+
onClose={() => dispatch(setIsBottomSheetActive(false))}
|
|
228
|
+
height={height}
|
|
229
|
+
animationDuration={200}
|
|
230
|
+
expandToMaxHeightEnabled={false}
|
|
231
|
+
handleWebViewScroll={() => handleWebViewScroll()}
|
|
232
|
+
shouldEnableBottomSheetScroll={shouldEnableBottomSheetScroll}
|
|
233
|
+
nativePlace={nativePlace}
|
|
234
|
+
isComponentLoading={isComponentLoading}
|
|
235
|
+
sliderMaxHeight={sliderMaxHeight}
|
|
236
|
+
>
|
|
237
|
+
{renderBottomSheetComponent()}
|
|
238
|
+
</BottomSheet>
|
|
239
|
+
)}
|
|
235
240
|
</View>
|
|
236
241
|
);
|
|
237
242
|
};
|