-
Notifications
You must be signed in to change notification settings - Fork 0
/
Modal.tsx
41 lines (38 loc) · 848 Bytes
/
Modal.tsx
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
39
40
41
import {
Modal as RNModal,
ModalProps,
KeyboardAvoidingView,
View,
Platform,
} from "react-native";
import React from "react";
type PROPS = ModalProps & {
isOpen: boolean;
withInput?: boolean;
};
const Modal = ({ isOpen, withInput, children, ...rest }: PROPS) => {
const content = withInput ? (
<KeyboardAvoidingView
className="items-center justify-center flex-1 px-3 bg-zinc-900/40"
behavior={Platform.OS === "ios" ? "padding" : "height"}
>
{children}
</KeyboardAvoidingView>
) : (
<View className="items-center justify-center flex-1 px-3 bg-zinc-900/40">
{children}
</View>
);
return (
<RNModal
visible={isOpen}
transparent
animationType="fade"
statusBarTranslucent
{...rest}
>
{content}
</RNModal>
);
};
export default Modal;