@momo-kits/foundation 0.168.1-beta.2 → 0.168.1-beta.21
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/Application/BottomSheet.tsx +142 -37
- package/Application/BottomTab/DuoTabBar.tsx +191 -151
- package/Application/BottomTab/useLiquidSelection.ts +374 -0
- package/Application/Components/DuoGlassBackground.tsx +5 -8
- package/Application/ModalScreen.tsx +12 -8
- package/Application/device.ts +24 -1
- package/Application/utils.tsx +5 -9
- package/Input/InputMoney.tsx +130 -178
- package/Input/styles.ts +9 -0
- package/Layout/Screen.tsx +18 -39
- package/Layout/utils.ts +1 -0
- package/Popup/PopupNotify.tsx +20 -10
- package/Popup/utils.ts +9 -15
- package/package.json +37 -37
package/Popup/PopupNotify.tsx
CHANGED
|
@@ -8,7 +8,7 @@ import { Image } from '../Image';
|
|
|
8
8
|
import { Text, useScaleSize } from '../Text';
|
|
9
9
|
import { PopupNotifyProps } from './types';
|
|
10
10
|
import { scheduleOnRN } from 'react-native-worklets';
|
|
11
|
-
import { usePopupMaxHeight, usePopupWidth } from './utils';
|
|
11
|
+
import { getPopupRadius, usePopupMaxHeight, usePopupWidth } from './utils';
|
|
12
12
|
|
|
13
13
|
const PopupNotify: React.FC<PopupNotifyProps> = ({
|
|
14
14
|
image,
|
|
@@ -26,6 +26,7 @@ const PopupNotify: React.FC<PopupNotifyProps> = ({
|
|
|
26
26
|
const [scrollContent, setScrollContent] = useState(false);
|
|
27
27
|
const popupWidth = usePopupWidth();
|
|
28
28
|
const maxHeight = usePopupMaxHeight();
|
|
29
|
+
const radius = getPopupRadius();
|
|
29
30
|
const scaledMaxHeight = useScaleSize(172);
|
|
30
31
|
|
|
31
32
|
const showBaseLineDebug = context?.features?.showBaseLineDebug ?? false;
|
|
@@ -170,7 +171,15 @@ const PopupNotify: React.FC<PopupNotifyProps> = ({
|
|
|
170
171
|
|
|
171
172
|
const body = (
|
|
172
173
|
<>
|
|
173
|
-
{!!image &&
|
|
174
|
+
{!!image && (
|
|
175
|
+
<Image
|
|
176
|
+
source={{ uri: image }}
|
|
177
|
+
style={[
|
|
178
|
+
styles.image,
|
|
179
|
+
{ borderTopLeftRadius: radius, borderTopRightRadius: radius },
|
|
180
|
+
]}
|
|
181
|
+
/>
|
|
182
|
+
)}
|
|
174
183
|
<View style={styles.content}>
|
|
175
184
|
<Text
|
|
176
185
|
typography={'header_default_bold'}
|
|
@@ -218,9 +227,9 @@ const PopupNotify: React.FC<PopupNotifyProps> = ({
|
|
|
218
227
|
<View
|
|
219
228
|
accessibilityLabel={'popup_notify'}
|
|
220
229
|
style={[
|
|
221
|
-
styles.container,
|
|
222
230
|
{
|
|
223
231
|
backgroundColor: theme.colors.background.surface,
|
|
232
|
+
borderRadius: radius,
|
|
224
233
|
width: popupWidth,
|
|
225
234
|
maxHeight,
|
|
226
235
|
},
|
|
@@ -231,7 +240,13 @@ const PopupNotify: React.FC<PopupNotifyProps> = ({
|
|
|
231
240
|
body
|
|
232
241
|
) : (
|
|
233
242
|
// scrolls when iPhone Duo landscape is too short; actions stay visible
|
|
234
|
-
<ScrollView
|
|
243
|
+
<ScrollView
|
|
244
|
+
style={[
|
|
245
|
+
styles.body,
|
|
246
|
+
{ borderTopLeftRadius: radius, borderTopRightRadius: radius },
|
|
247
|
+
]}
|
|
248
|
+
bounces={false}
|
|
249
|
+
>
|
|
235
250
|
{body}
|
|
236
251
|
</ScrollView>
|
|
237
252
|
)}
|
|
@@ -242,17 +257,12 @@ const PopupNotify: React.FC<PopupNotifyProps> = ({
|
|
|
242
257
|
};
|
|
243
258
|
|
|
244
259
|
const styles = StyleSheet.create({
|
|
245
|
-
container: {
|
|
246
|
-
borderRadius: Radius.L,
|
|
247
|
-
},
|
|
248
260
|
debugBaseLine: { borderWidth: 1, borderColor: Colors.green_06 },
|
|
249
261
|
image: {
|
|
250
|
-
borderTopLeftRadius: Radius.L,
|
|
251
|
-
borderTopRightRadius: Radius.L,
|
|
252
262
|
aspectRatio: 1.7777,
|
|
253
263
|
overflow: 'hidden',
|
|
254
264
|
},
|
|
255
|
-
body: { flexShrink: 1 },
|
|
265
|
+
body: { flexShrink: 1, overflow: 'hidden' },
|
|
256
266
|
content: { padding: Spacing.XL },
|
|
257
267
|
description: {
|
|
258
268
|
marginTop: Spacing.S,
|
package/Popup/utils.ts
CHANGED
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
import { Dimensions, useWindowDimensions } from 'react-native';
|
|
2
2
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
3
|
-
import { Spacing } from '../Consts';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
// width of a system alert on the iPhone Duo inner display, in both orientations
|
|
7
|
-
const DUO_POPUP_MAX_WIDTH = 440;
|
|
3
|
+
import { Radius, Spacing } from '../Consts';
|
|
4
|
+
import { getDuoModalBounds, isIPhoneDuo } from '../Application/device';
|
|
8
5
|
|
|
9
6
|
const usePopupWidth = () => {
|
|
10
|
-
const
|
|
7
|
+
const insets = useSafeAreaInsets();
|
|
8
|
+
const { width, height } = useWindowDimensions();
|
|
11
9
|
if (!isIPhoneDuo()) {
|
|
12
10
|
return Dimensions.get('window').width - Spacing.XL * 2;
|
|
13
11
|
}
|
|
14
|
-
return
|
|
12
|
+
return getDuoModalBounds(insets, width, height).maxWidth;
|
|
15
13
|
};
|
|
16
14
|
|
|
17
|
-
// room left for a popup on iPhone Duo, where landscape is too short for it
|
|
18
15
|
const usePopupMaxHeight = () => {
|
|
19
16
|
const insets = useSafeAreaInsets();
|
|
20
17
|
const { width, height } = useWindowDimensions();
|
|
21
18
|
if (!isIPhoneDuo()) {
|
|
22
19
|
return undefined;
|
|
23
20
|
}
|
|
24
|
-
return (
|
|
25
|
-
height -
|
|
26
|
-
getDuoTopInset(insets, width, height) -
|
|
27
|
-
insets.bottom -
|
|
28
|
-
Spacing.XL * 2
|
|
29
|
-
);
|
|
21
|
+
return getDuoModalBounds(insets, width, height).maxHeight;
|
|
30
22
|
};
|
|
31
23
|
|
|
32
|
-
|
|
24
|
+
const getPopupRadius = () => (isIPhoneDuo() ? Radius.XL : Radius.L);
|
|
25
|
+
|
|
26
|
+
export { usePopupWidth, usePopupMaxHeight, getPopupRadius };
|
package/package.json
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
2
|
+
"name": "@momo-kits/foundation",
|
|
3
|
+
"version": "0.168.1-beta.21",
|
|
4
|
+
"description": "React Native Component Kits",
|
|
5
|
+
"main": "index.ts",
|
|
6
|
+
"scripts": {},
|
|
7
|
+
"keywords": [
|
|
8
|
+
"@momo-kits/foundation"
|
|
9
|
+
],
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"react-native-fast-image": "git+https://oauth2:TGi6oBj-LdzsKpLXQSoH@gitlab.mservice.com.vn/momo-platform/public/react-native-fast-image.git#v8.11.0",
|
|
12
|
+
"@react-navigation/bottom-tabs": "7.4.2",
|
|
13
|
+
"@react-navigation/core": "7.12.1",
|
|
14
|
+
"@react-navigation/elements": "2.5.2",
|
|
15
|
+
"@react-navigation/native": "7.1.14",
|
|
16
|
+
"@react-navigation/routers": "7.4.1",
|
|
17
|
+
"@react-navigation/stack": "7.4.2",
|
|
18
|
+
"react-native-gesture-handler": "2.27.1",
|
|
19
|
+
"react-native-linear-gradient": "git+https://oauth2:TGi6oBj-LdzsKpLXQSoH@gitlab.mservice.com.vn/momo-platform/public/react-native-linear-gradient#v3.0.0",
|
|
20
|
+
"react-native-reanimated": "4.2.2",
|
|
21
|
+
"react-native-worklets": "0.6.1",
|
|
22
|
+
"react-native-safe-area-context": "5.5.2",
|
|
23
|
+
"react-native-reserved-regions": "0.2.0",
|
|
24
|
+
"@shopify/flash-list": "2.1.0",
|
|
25
|
+
"lottie-react-native": "7.2.4"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"react-native": "*",
|
|
29
|
+
"react-native-worklets": "0.6.1"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/color": "3.0.6"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"registry": "https://registry.npmjs.org/"
|
|
36
|
+
},
|
|
37
|
+
"license": "MoMo"
|
|
38
|
+
}
|