bottom sheet MODAL

This commit is contained in:
2022-10-17 08:59:37 +02:00
parent 016ea42b93
commit 89e6f806c3
4 changed files with 3160 additions and 8 deletions

80
App.js
View File

@@ -1,19 +1,87 @@
import { StatusBar } from 'expo-status-bar'; import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View } from 'react-native'; import { useState, useRef } from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import Modal from "react-native-modal";
export default function App() { export default function App() {
const [modalVisible, setModalVisible] = useState(false);
return ( return (
<View style={styles.container}> <>
<Text>Open up App.js to start working on your app!</Text> {/* SWIPEABLE MODAL START */}
<StatusBar style="auto" /> {modalVisible &&
</View> <Modal
testID={"modal"}
isVisible={true}
onSwipeComplete={() => setModalVisible(false)}
swipeDirection={["down"]}
scrollOffsetMax={1500 - 600} // content height - ScrollView height
propagateSwipe={true}
style={{ ...styles2.modal, position: "relative" }}
>
<View style={styles2.scrollableModal}>
<View style={styles2.scrollableModalContent}>
<View style={{ flex: 1, flexDirection: "column", alignItems: "center", }}>
<View>
<Text>ABCDEFGH</Text>
<Button title='CLOSE' onPress={() => setModalVisible(false)} />
</View>
</View>
</View>
</View>
</Modal>
}
{/* SWIPEABLE MODAL END */}
<View style={styles.container}>
<Button title='ABCD' onPress={() => setModalVisible(true)} />
<Button title='D' onPress={()=> {
}} />
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
</>
); );
} }
const styles2 = StyleSheet.create({
modal: {
justifyContent: "flex-end",
margin: 0,
},
scrollableModal: {
height: "50%",
borderTopLeftRadius: 15,
borderTopRightRadius: 15,
overflow: "hidden",
position: "relative",
},
scrollableModalContent: {
paddingTop: 30,
paddingBottom: 200,
paddingHorizontal: 10,
minHeight: 800,
height: "auto",
backgroundColor: "pink",
},
header: {
fontFamily: "Ubuntu_500Medium",
fontSize: 25,
marginBottom: 20,
textAlign: "center",
},
info: {
textAlign: "center",
fontSize: 18,
color: "gray"
}
});
const styles = StyleSheet.create({ const styles = StyleSheet.create({
container: { container: {
flex: 1, flex: 1,
backgroundColor: '#fff', backgroundColor: 'lightblue',
alignItems: 'center', alignItems: 'center',
justifyContent: 'center', justifyContent: 'center',
}, },

8
notes.md Normal file
View File

@@ -0,0 +1,8 @@
MODAL swipeable
`npm install react-native-modal`
FIREBASE
`npm install firebase@9.2.0`
`npm install firebase-messaging`

3077
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -12,7 +12,8 @@
"expo": "~46.0.13", "expo": "~46.0.13",
"expo-status-bar": "~1.4.0", "expo-status-bar": "~1.4.0",
"react": "18.0.0", "react": "18.0.0",
"react-native": "0.69.6" "react-native": "0.69.6",
"react-native-modal": "^13.0.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.9" "@babel/core": "^7.12.9"