@sincpro/mobile-ui 0.7.1 → 0.7.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/dist/Dialog/Dialog.ActionSheet.js +21 -5
- package/dist/Dialog/Dialog.Confirmation.js +1 -1
- package/dist/Dialog/Dialog.EditValue.js +1 -1
- package/dist/Dialog/Dialog.Sheet.js +13 -4
- package/dist/Feedback/Feedback.Progress.js +4 -2
- package/dist/Feedback/Feedback.Skeleton.js +3 -2
- package/dist/Form/Form.Dropdown.js +1 -1
- package/dist/Form/Form.Select.js +28 -13
- package/dist/Navigation/Navigation.Menu.js +1 -1
- package/dist/widgets/PromoModal.js +1 -1
- package/package.json +1 -1
|
@@ -4,13 +4,29 @@ import Pressable from "../primitives/Pressable";
|
|
|
4
4
|
import { theme } from "../theme";
|
|
5
5
|
import { cn } from "../theme/tw";
|
|
6
6
|
import { Typography } from "../Typography";
|
|
7
|
-
import {
|
|
7
|
+
import { useEffect, useRef } from "react";
|
|
8
|
+
import { Animated, Modal, Pressable as RNPressable, View } from "react-native";
|
|
8
9
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
9
10
|
function ActionSheet({ visible, onClose, actions, title, message, cancelLabel = "Cancelar", }) {
|
|
10
11
|
const insets = useSafeAreaInsets();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
// eslint-disable-next-line react-hooks/refs
|
|
13
|
+
const translateY = useRef(new Animated.Value(800)).current;
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (visible) {
|
|
16
|
+
Animated.spring(translateY, {
|
|
17
|
+
toValue: 0,
|
|
18
|
+
useNativeDriver: true,
|
|
19
|
+
damping: 20,
|
|
20
|
+
stiffness: 300,
|
|
21
|
+
}).start();
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
translateY.setValue(800);
|
|
25
|
+
}
|
|
26
|
+
}, [visible, translateY]);
|
|
27
|
+
return (_jsx(Modal, { animationType: "none", onRequestClose: onClose, presentationStyle: "overFullScreen", transparent: true, visible: visible, children: _jsx(RNPressable, { className: "flex-1 justify-end bg-black/50", onPress: onClose, children: _jsx(Animated.View, { style: { transform: [{ translateY }] }, children: _jsxs(RNPressable, { style: { paddingHorizontal: 12, paddingBottom: insets.bottom + 12 }, children: [title || message ? (_jsxs(View, { className: "rounded-xl mb-2 px-4 py-3 items-center", style: { backgroundColor: theme.bg.card }, children: [title ? (_jsx(Typography.Text, { className: "text-text-primary", semibold: true, children: title })) : null, message ? (_jsx(Typography.Text, { className: "text-text-secondary text-sm", variant: "bodySmall", children: message })) : null] })) : null, _jsx(View, { className: "rounded-xl overflow-hidden mb-2", style: { backgroundColor: theme.bg.card }, children: actions.map((action, index) => (_jsxs(Pressable, { accessibilityRole: "button", accessibilityState: { disabled: action.disabled }, className: cn("flex-row items-center justify-center gap-2 px-4 py-4", index < actions.length - 1 && "border-b border-border-light"), disabled: action.disabled, onPress: () => {
|
|
28
|
+
onClose();
|
|
29
|
+
action.onPress();
|
|
30
|
+
}, children: [action.icon ? (_jsx(Icon, { color: action.destructive ? theme.danger : theme.icon.primary, name: action.icon, size: 20 })) : null, _jsx(Typography.Text, { className: cn(action.destructive ? "text-danger" : "text-text-primary"), semibold: true, children: action.label })] }, action.label))) }), _jsx(Pressable, { accessibilityRole: "button", className: "rounded-xl px-4 py-4 items-center", onPress: onClose, style: { backgroundColor: theme.bg.card }, children: _jsx(Typography.Text, { className: "text-primary", semibold: true, children: cancelLabel }) })] }) }) }) }));
|
|
15
31
|
}
|
|
16
32
|
export default ActionSheet;
|
|
@@ -4,7 +4,7 @@ import { theme } from "../theme";
|
|
|
4
4
|
import Typography from "../Typography/Typography.Text";
|
|
5
5
|
import { Modal, TouchableWithoutFeedback, View } from "react-native";
|
|
6
6
|
const ConfirmationDialog = ({ visible, onCancel, onConfirm, auxTitle = "cambios", subtitle = "¿Estás seguro de que quieres descartar los cambios realizados?", confirmButtonText = "Sí", cancelButtonText = "No, continuar aquí", }) => {
|
|
7
|
-
return (_jsx(Modal, { animationType: "fade", onRequestClose: onCancel, transparent: true, visible: visible, children: _jsx(TouchableWithoutFeedback, { onPress: onCancel, children: _jsx(View, { className: "flex-1 justify-center items-center p-6 bg-black/50", children: _jsx(TouchableWithoutFeedback, { children: _jsxs(View, { className: "p-3 w-full max-w-xs mx-auto", style: {
|
|
7
|
+
return (_jsx(Modal, { animationType: "fade", onRequestClose: onCancel, presentationStyle: "overFullScreen", transparent: true, visible: visible, children: _jsx(TouchableWithoutFeedback, { onPress: onCancel, children: _jsx(View, { className: "flex-1 justify-center items-center p-6 bg-black/50", children: _jsx(TouchableWithoutFeedback, { children: _jsxs(View, { className: "p-3 w-full max-w-xs mx-auto", style: {
|
|
8
8
|
borderRadius: 22,
|
|
9
9
|
backgroundColor: theme.bg.popover,
|
|
10
10
|
...theme.shadow.md,
|
|
@@ -11,6 +11,6 @@ function EditableValueModal({ visible, title, value, onChangeValue, onConfirm, o
|
|
|
11
11
|
return () => clearTimeout(t);
|
|
12
12
|
}
|
|
13
13
|
}, [visible, autoFocus]);
|
|
14
|
-
return (_jsx(Modal, { animationType: "fade", onRequestClose: onCancel, transparent: true, visible: visible, children: _jsx(View, { className: "flex-1 justify-center p-6 bg-black/40", children: _jsxs(View, { className: "p-4", style: { borderRadius: 22, backgroundColor: theme.bg.popover, ...theme.shadow.md }, testID: testID, children: [_jsx(Typography.Text, { className: "mb-3", semibold: true, variant: "h6", children: title }), _jsxs(View, { className: "flex-row items-center", children: [_jsx(TextInput, { className: "flex-1 border border-input rounded-lg p-2.5 text-lg text-text-primary", keyboardType: keyboardType, onChangeText: onChangeValue, onSubmitEditing: onConfirm, placeholder: placeholder, ref: inputRef, returnKeyType: "done", value: value }), rightAdornment && _jsx(View, { className: "ml-2", children: rightAdornment })] }), helperText ? (_jsx(View, { className: "mt-2", children: typeof helperText === "string" ? (_jsx(Typography.Text, { className: "opacity-70", variant: "bodySmall", children: helperText })) : (helperText) })) : null, chips && chips.length > 0 && (_jsx(FlatList, { contentContainerClassName: "gap-2 py-3", data: chips, horizontal: true, keyExtractor: (c, i) => c.key || `${c.label}-${i}`, renderItem: ({ item }) => (_jsx(TouchableOpacity, { className: "px-3 py-1.5 bg-accent/10 rounded-2xl border border-accent/30", onPress: item.onPress, children: _jsx(Typography.Text, { semibold: true, variant: "bodySmall", children: item.label }) })) })), _jsxs(View, { className: "flex-row justify-end gap-3", children: [_jsx(TouchableOpacity, { className: "px-4 py-2.5 rounded-lg bg-bg-hover", onPress: onCancel, children: _jsx(Typography.Text, { semibold: true, variant: "body", children: cancelLabel }) }), _jsx(TouchableOpacity, { className: "px-4 py-2.5 rounded-lg bg-accent", onPress: onConfirm, children: _jsx(Typography.Text, { className: "text-text-inverse", semibold: true, variant: "body", children: confirmLabel }) })] })] }) }) }));
|
|
14
|
+
return (_jsx(Modal, { animationType: "fade", onRequestClose: onCancel, presentationStyle: "overFullScreen", transparent: true, visible: visible, children: _jsx(View, { className: "flex-1 justify-center p-6 bg-black/40", children: _jsxs(View, { className: "p-4", style: { borderRadius: 22, backgroundColor: theme.bg.popover, ...theme.shadow.md }, testID: testID, children: [_jsx(Typography.Text, { className: "mb-3", semibold: true, variant: "h6", children: title }), _jsxs(View, { className: "flex-row items-center", children: [_jsx(TextInput, { className: "flex-1 border border-input rounded-lg p-2.5 text-lg text-text-primary", keyboardType: keyboardType, onChangeText: onChangeValue, onSubmitEditing: onConfirm, placeholder: placeholder, ref: inputRef, returnKeyType: "done", value: value }), rightAdornment && _jsx(View, { className: "ml-2", children: rightAdornment })] }), helperText ? (_jsx(View, { className: "mt-2", children: typeof helperText === "string" ? (_jsx(Typography.Text, { className: "opacity-70", variant: "bodySmall", children: helperText })) : (helperText) })) : null, chips && chips.length > 0 && (_jsx(FlatList, { contentContainerClassName: "gap-2 py-3", data: chips, horizontal: true, keyExtractor: (c, i) => c.key || `${c.label}-${i}`, renderItem: ({ item }) => (_jsx(TouchableOpacity, { className: "px-3 py-1.5 bg-accent/10 rounded-2xl border border-accent/30", onPress: item.onPress, children: _jsx(Typography.Text, { semibold: true, variant: "bodySmall", children: item.label }) })) })), _jsxs(View, { className: "flex-row justify-end gap-3", children: [_jsx(TouchableOpacity, { className: "px-4 py-2.5 rounded-lg bg-bg-hover", onPress: onCancel, children: _jsx(Typography.Text, { semibold: true, variant: "body", children: cancelLabel }) }), _jsx(TouchableOpacity, { className: "px-4 py-2.5 rounded-lg bg-accent", onPress: onConfirm, children: _jsx(Typography.Text, { className: "text-text-inverse", semibold: true, variant: "body", children: confirmLabel }) })] })] }) }) }));
|
|
15
15
|
}
|
|
16
16
|
export default EditableValueModal;
|
|
@@ -18,13 +18,22 @@ export function SheetProvider({ children }) {
|
|
|
18
18
|
*/
|
|
19
19
|
function Sheet({ visible, onClose, children, title, maxHeightRatio = 0.9, dismissOnBackdrop = false, testID, }) {
|
|
20
20
|
const insets = useSafeAreaInsets();
|
|
21
|
-
const
|
|
21
|
+
const translateY = useRef(new Animated.Value(800)).current;
|
|
22
22
|
const onCloseRef = useRef(onClose);
|
|
23
23
|
// eslint-disable-next-line react-hooks/refs
|
|
24
24
|
onCloseRef.current = onClose;
|
|
25
25
|
useEffect(() => {
|
|
26
|
-
if (visible)
|
|
27
|
-
|
|
26
|
+
if (visible) {
|
|
27
|
+
Animated.spring(translateY, {
|
|
28
|
+
toValue: 0,
|
|
29
|
+
useNativeDriver: true,
|
|
30
|
+
damping: 20,
|
|
31
|
+
stiffness: 300,
|
|
32
|
+
}).start();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
translateY.setValue(800);
|
|
36
|
+
}
|
|
28
37
|
}, [visible, translateY]);
|
|
29
38
|
// eslint-disable-next-line react-hooks/refs
|
|
30
39
|
const [pan] = useState(() => PanResponder.create({
|
|
@@ -47,7 +56,7 @@ function Sheet({ visible, onClose, children, title, maxHeightRatio = 0.9, dismis
|
|
|
47
56
|
}
|
|
48
57
|
},
|
|
49
58
|
}));
|
|
50
|
-
return (_jsx(Modal, { animationType: "
|
|
59
|
+
return (_jsx(Modal, { animationType: "none", onRequestClose: onClose, presentationStyle: "overFullScreen", transparent: true, visible: visible, children: _jsxs(View, { className: "flex-1 justify-end", testID: testID, children: [_jsx(View, { className: "absolute inset-0 bg-black/50", onResponderRelease: dismissOnBackdrop ? onClose : undefined, onStartShouldSetResponder: () => dismissOnBackdrop }), _jsxs(Animated.View, { className: "rounded-t-3xl", style: {
|
|
51
60
|
backgroundColor: theme.bg.card,
|
|
52
61
|
paddingBottom: insets.bottom + 12,
|
|
53
62
|
maxHeight: `${Math.round(maxHeightRatio * 100)}%`,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
2
2
|
import { cn } from "../theme/tw";
|
|
3
3
|
import { motion } from "../tokens/motion";
|
|
4
|
-
import { useEffect,
|
|
4
|
+
import { useEffect, useRef } from "react";
|
|
5
5
|
import { Animated, Easing, View } from "react-native";
|
|
6
6
|
function clamp(n) {
|
|
7
7
|
return Math.max(0, Math.min(1, n));
|
|
8
8
|
}
|
|
9
9
|
function Progress({ value = 0, indeterminate = false, height = 6, className, testID, }) {
|
|
10
|
-
|
|
10
|
+
// eslint-disable-next-line react-hooks/refs
|
|
11
|
+
const translate = useRef(new Animated.Value(0)).current;
|
|
11
12
|
useEffect(() => {
|
|
12
13
|
if (!indeterminate)
|
|
13
14
|
return;
|
|
@@ -24,6 +25,7 @@ function Progress({ value = 0, indeterminate = false, height = 6, className, tes
|
|
|
24
25
|
width: "40%",
|
|
25
26
|
transform: [
|
|
26
27
|
{
|
|
28
|
+
// eslint-disable-next-line react-hooks/refs
|
|
27
29
|
translateX: translate.interpolate({
|
|
28
30
|
inputRange: [0, 1],
|
|
29
31
|
outputRange: ["-40%", "250%"],
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
2
2
|
import { cn } from "../theme/tw";
|
|
3
3
|
import { motion } from "../tokens/motion";
|
|
4
|
-
import { useEffect,
|
|
4
|
+
import { useEffect, useRef } from "react";
|
|
5
5
|
import { Animated, Easing } from "react-native";
|
|
6
6
|
function Skeleton({ width = "100%", height = 16, radius = 8, circle = false, className, style, }) {
|
|
7
|
-
|
|
7
|
+
// eslint-disable-next-line react-hooks/refs
|
|
8
|
+
const opacity = useRef(new Animated.Value(0.5)).current;
|
|
8
9
|
useEffect(() => {
|
|
9
10
|
const pulse = Animated.loop(Animated.sequence([
|
|
10
11
|
Animated.timing(opacity, {
|
|
@@ -77,7 +77,7 @@ function DropdownButton({ title, options, variant = "secondary", size = "small",
|
|
|
77
77
|
xs: "bodySmall",
|
|
78
78
|
small: "bodySmall",
|
|
79
79
|
}[size];
|
|
80
|
-
return (_jsxs(_Fragment, { children: [_jsxs(TouchableOpacity, { activeOpacity: 0.7, className: styles.button(), onPress: () => setIsOpen(true), children: [_jsx(Typography.Text, { className: textColorClass, variant: textVariant, children: title }), _jsx(Display.Icon, { color: iconColor, name: "chevron-down", size: 16, type: "feather" })] }), _jsx(Modal, { animationType: "fade", transparent: true, visible: isOpen, children: _jsx(TouchableWithoutFeedback, { onPress: () => setIsOpen(false), children: _jsx(View, { className: styles.overlay(), children: _jsx(TouchableWithoutFeedback, { children: _jsxs(View, { className: styles.dropdownContainer(), style: {
|
|
80
|
+
return (_jsxs(_Fragment, { children: [_jsxs(TouchableOpacity, { activeOpacity: 0.7, className: styles.button(), onPress: () => setIsOpen(true), children: [_jsx(Typography.Text, { className: textColorClass, variant: textVariant, children: title }), _jsx(Display.Icon, { color: iconColor, name: "chevron-down", size: 16, type: "feather" })] }), _jsx(Modal, { animationType: "fade", presentationStyle: "overFullScreen", transparent: true, visible: isOpen, children: _jsx(TouchableWithoutFeedback, { onPress: () => setIsOpen(false), children: _jsx(View, { className: styles.overlay(), children: _jsx(TouchableWithoutFeedback, { children: _jsxs(View, { className: styles.dropdownContainer(), style: {
|
|
81
81
|
backgroundColor: theme.bg.popover,
|
|
82
82
|
...theme.shadow.lg,
|
|
83
83
|
}, children: [_jsxs(View, { className: styles.header(), children: [_jsx(Typography.Text, { className: "text-text-primary", semibold: true, variant: "bodyLarge", children: title }), _jsx(TouchableOpacity, { onPress: () => setIsOpen(false), children: _jsx(Display.Icon, { name: "x", size: 20, type: "feather" }) })] }), _jsx(View, { className: styles.optionsList(), children: options.map((option, index) => (_jsxs(View, { children: [_jsx(TouchableOpacity, { activeOpacity: 0.7, className: dropdown({ disabled: option.disabled }).option(), disabled: option.disabled, onPress: () => handleOptionPress(option), children: _jsx(Typography.Text, { className: option.disabled ? "text-text-disabled" : "text-text-primary", variant: "body", children: option.title }) }), index < options.length - 1 && _jsx(View, { className: styles.separator() })] }, option.id))) })] }) }) }) }) })] }));
|
package/dist/Form/Form.Select.js
CHANGED
|
@@ -4,23 +4,38 @@ import Pressable from "../primitives/Pressable";
|
|
|
4
4
|
import { theme } from "../theme";
|
|
5
5
|
import { cn } from "../theme/tw";
|
|
6
6
|
import { Typography } from "../Typography";
|
|
7
|
-
import { useState } from "react";
|
|
8
|
-
import { Modal, Pressable as RNPressable, ScrollView, View } from "react-native";
|
|
7
|
+
import { useEffect, useRef, useState } from "react";
|
|
8
|
+
import { Animated, Modal, Pressable as RNPressable, ScrollView, View } from "react-native";
|
|
9
9
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
10
10
|
function Select({ options, value, onChange, label, placeholder = "Seleccionar…", title, disabled = false, className, testID, }) {
|
|
11
11
|
const insets = useSafeAreaInsets();
|
|
12
12
|
const [open, setOpen] = useState(false);
|
|
13
13
|
const selected = options.find((o) => o.value === value) ?? null;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
// eslint-disable-next-line react-hooks/refs
|
|
15
|
+
const translateY = useRef(new Animated.Value(800)).current;
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (open) {
|
|
18
|
+
Animated.spring(translateY, {
|
|
19
|
+
toValue: 0,
|
|
20
|
+
useNativeDriver: true,
|
|
21
|
+
damping: 20,
|
|
22
|
+
stiffness: 300,
|
|
23
|
+
}).start();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
translateY.setValue(800);
|
|
27
|
+
}
|
|
28
|
+
}, [open, translateY]);
|
|
29
|
+
return (_jsxs(View, { className: cn("gap-1", className), testID: testID, children: [label ? (_jsx(Typography.Text, { className: "font-medium text-text-primary", variant: "bodySmall", children: label })) : null, _jsxs(Pressable, { accessibilityHint: "Abre la lista de opciones", accessibilityLabel: label ?? placeholder, accessibilityRole: "button", accessibilityState: { disabled }, className: "flex-row items-center justify-between rounded-lg border border-input bg-bg-card px-3 min-h-[44px]", disabled: disabled, onPress: () => setOpen(true), children: [_jsx(Typography.Text, { className: cn("flex-1 text-sm", selected ? "text-text-primary" : "text-text-tertiary"), numberOfLines: 1, children: selected ? selected.label : placeholder }), _jsx(Icon, { color: theme.icon.secondary, name: "chevron-down", size: 18 })] }), _jsx(Modal, { animationType: "none", onRequestClose: () => setOpen(false), presentationStyle: "overFullScreen", transparent: true, visible: open, children: _jsx(RNPressable, { className: "flex-1 justify-end bg-black/50", onPress: () => setOpen(false), children: _jsx(Animated.View, { style: { transform: [{ translateY }] }, children: _jsxs(RNPressable, { className: "rounded-t-3xl", style: {
|
|
30
|
+
backgroundColor: theme.bg.card,
|
|
31
|
+
paddingBottom: insets.bottom + 8,
|
|
32
|
+
maxHeight: "70%",
|
|
33
|
+
}, children: [_jsx(View, { className: "items-center pt-3 pb-1", children: _jsx(View, { className: "w-10 h-1 rounded-full bg-border-strong" }) }), title ? (_jsx(Typography.Text, { className: "text-text-primary px-4 py-2", semibold: true, variant: "body", children: title })) : null, _jsx(ScrollView, { children: options.map((option) => {
|
|
34
|
+
const isSelected = option.value === value;
|
|
35
|
+
return (_jsxs(Pressable, { accessibilityRole: "menuitem", accessibilityState: { selected: isSelected }, className: "flex-row items-center justify-between px-4 py-3 border-b border-border-light", onPress: () => {
|
|
36
|
+
onChange(option.value);
|
|
37
|
+
setOpen(false);
|
|
38
|
+
}, children: [_jsx(Typography.Text, { className: cn("flex-1 text-sm", isSelected ? "text-primary font-semibold" : "text-text-primary"), children: option.label }), isSelected ? (_jsx(Icon, { color: theme.primary, name: "checkmark", size: 18 })) : null] }, String(option.value)));
|
|
39
|
+
}) })] }) }) }) })] }));
|
|
25
40
|
}
|
|
26
41
|
export default Select;
|
|
@@ -21,7 +21,7 @@ function Menu({ items, trigger, menuWidth = 220, testID }) {
|
|
|
21
21
|
const top = anchor ? anchor.y + anchor.height + 4 : 0;
|
|
22
22
|
return (_jsxs(View, { collapsable: false, ref: triggerRef, testID: testID, children: [trigger ? (
|
|
23
23
|
// eslint-disable-next-line react-hooks/refs
|
|
24
|
-
cloneElement(trigger, { onPress: open })) : (_jsx(Pressable, { accessibilityLabel: "M\u00E1s opciones", accessibilityRole: "button", onPress: open, children: _jsx(Icon, { color: theme.icon.secondary, name: "ellipsis-vertical", size: 22 }) })), _jsx(Modal, { animationType: "fade", onRequestClose: close, transparent: true, visible: anchor !== null, children: _jsx(RNPressable, { onPress: close, style: { flex: 1 }, children: _jsx(View, { className: "rounded-lg py-1", style: {
|
|
24
|
+
cloneElement(trigger, { onPress: open })) : (_jsx(Pressable, { accessibilityLabel: "M\u00E1s opciones", accessibilityRole: "button", onPress: open, children: _jsx(Icon, { color: theme.icon.secondary, name: "ellipsis-vertical", size: 22 }) })), _jsx(Modal, { animationType: "fade", onRequestClose: close, presentationStyle: "overFullScreen", transparent: true, visible: anchor !== null, children: _jsx(RNPressable, { onPress: close, style: { flex: 1 }, children: _jsx(View, { className: "rounded-lg py-1", style: {
|
|
25
25
|
position: "absolute",
|
|
26
26
|
top,
|
|
27
27
|
right,
|
|
@@ -25,7 +25,7 @@ export function PromoModal({ visible, onDismiss, title, body, icon: Icon, header
|
|
|
25
25
|
const theme = useTheme();
|
|
26
26
|
const insets = useSafeAreaInsets();
|
|
27
27
|
const accent = accentColor ?? theme.accent;
|
|
28
|
-
return (_jsxs(Modal, { animationType: "fade", onRequestClose: onDismiss, statusBarTranslucent: true, transparent: true, visible: visible, children: [_jsx(TouchableWithoutFeedback, { onPress: onDismiss, children: _jsx(View, { style: {
|
|
28
|
+
return (_jsxs(Modal, { animationType: "fade", onRequestClose: onDismiss, presentationStyle: "overFullScreen", statusBarTranslucent: true, transparent: true, visible: visible, children: [_jsx(TouchableWithoutFeedback, { onPress: onDismiss, children: _jsx(View, { style: {
|
|
29
29
|
flex: 1,
|
|
30
30
|
backgroundColor: "rgba(0,0,0,0.55)",
|
|
31
31
|
alignItems: "center",
|
package/package.json
CHANGED