added inital info page

This commit is contained in:
leKimChiii 2023-04-16 20:19:39 +08:00
parent 06d68db226
commit 9851c426e0
2 changed files with 44 additions and 34 deletions

View file

@ -3,37 +3,49 @@ import {View, Text} from 'react-native';
import styles from '../../styles'; import styles from '../../styles';
import Background from '../../Components/Background/Background'; import Background from '../../Components/Background/Background';
import { SafeAreaView } from 'react-native-safe-area-context'; import { SafeAreaView } from 'react-native-safe-area-context';
import UserIcon from '../../Components/Icons/UserIcon/UserIcon'; import { UserInfo } from '../../Components/Api/Api';
import {TouchableOpacity, TextInput} from "react-native"; import { useQuery } from 'react-query';
import { useState } from "react"; import { useSelector } from 'react-redux';
import { RootState } from '../../Features/Redux/Store/Store';
export default function UserInfo() { export default function UserPage() {
const [isEditable, setIsEditable] = useState(false); const { data, isLoading, error } = useQuery("user", UserInfo, { retry: 0, onSuccess: (data) => console.log(data) });
const logged_in = useSelector(
(state: RootState) => state.logged_in.value
);
const logged_in_user = useSelector(
(state: RootState) => state.logged_in_user.value
);
if (isLoading && !error) {
return (
<View style={styles.background}>
<View style={styles.addnotecont}>
<Text style={styles.typeinput}>Loading...</Text>
</View>
</View>
);
} else if (error) {
return (
<View style={styles.background}>
<View style={styles.addnotecont}>
<Text style={styles.typeinput}>An error has occured</Text>
</View>
</View>
);
}
return ( return (
<Background> <Background>
<Text style={{...styles.text_white, ...{fontSize: 32}}}></Text> <View style={styles.addnotecont}>
<SafeAreaView> <SafeAreaView>
<View style={styles.userinfocont}> <View style={styles.background}>
<Text style ={styles.userlabel} > <UserIcon size={32} color="white"/> USER INFO</Text> <View style={styles.title}>
<Text style={styles.typeinput}>Username: {logged_in_user.username}</Text>
</View> <Text style={styles.typeinput}>Email: {logged_in_user.email}</Text>
<View style={styles.form}> <Text style={styles.typeinput}>User ID: {logged_in_user.id}</Text>
<View style={styles.inputRow}> </View>
<Text style={styles.label}>Username</Text> </View>
<TextInput </SafeAreaView>
style={[styles.inputUser, !isEditable && styles.disabledInput]}
editable={isEditable}
/>
</View>
<TouchableOpacity
style={styles.editButton}
onPress={() => setIsEditable(!isEditable)}
>
<Text style={styles.buttonText}>{isEditable ? "Save" : "Edit Profile"}</Text>
</TouchableOpacity>
</View> </View>
</SafeAreaView>
</Background> </Background>
); );
} }

View file

@ -64,7 +64,7 @@ const styles = StyleSheet.create({
height: 50, height: 50,
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
backgroundColor: "#0dbc6a", backgroundColor: "lightgreen",
}, },
registerbtn: { registerbtn: {
width: "80%", width: "80%",
@ -73,7 +73,7 @@ const styles = StyleSheet.create({
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
marginTop: 40, marginTop: 40,
backgroundColor: "#e2b465", backgroundColor: "orange",
}, },
loginText: { loginText: {
color: "white", color: "white",
@ -150,7 +150,7 @@ const styles = StyleSheet.create({
alignItems: "center", alignItems: "center",
}, },
typehere: { typehere: {
backgroundColor: "#00293e", backgroundColor: "black",
borderRadius: 10, borderRadius: 10,
width: "75%", width: "75%",
height: 300, height: 300,
@ -173,8 +173,6 @@ const styles = StyleSheet.create({
width: "80%", width: "80%",
height: 40, height: 40,
marginTop: 20, marginTop: 20,
alignItems: "center",
justifyContent: "center",
}, },
addnotecont: { addnotecont: {
marginTop: 30, marginTop: 30,
@ -182,7 +180,7 @@ const styles = StyleSheet.create({
height: 500, height: 500,
width: 350, width: 350,
borderRadius: 25, borderRadius: 25,
backgroundColor: "black", backgroundColor: "#001018",
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
}, },