diff --git a/screens/Auth/Register.jsx b/screens/Auth/Register.jsx index bda9902..da7a82a 100644 --- a/screens/Auth/Register.jsx +++ b/screens/Auth/Register.jsx @@ -1,170 +1,329 @@ -import React, { useEffect, useState } from 'react' +import React, { useEffect, useState } from "react"; import { - Box, Button, Heading, Input, Text, Image, Center, Actionsheet, useDisclose, Pressable, HStack, Icon, Link, VStack, ScrollView, Avatar -} from 'native-base' -import { createUserWithEmailAndPassword } from 'firebase/auth' -import * as ImagePicker from 'expo-image-picker' -import ActiveController from '../../controller/Active' -import { auth } from '../../config' -import { MaterialIcons } from '@expo/vector-icons' + Box, + Button, + Heading, + Input, + Text, + Image, + Center, + Actionsheet, + useDisclose, + Pressable, + HStack, + Icon, + Link, + VStack, + ScrollView, + Avatar, + ZStack, +} from "native-base"; +import { createUserWithEmailAndPassword } from "firebase/auth"; +import * as ImagePicker from "expo-image-picker"; +import ActiveController from "../../controller/Active"; +import { auth } from "../../config"; +import { MaterialIcons } from "@expo/vector-icons"; -export function RegisterScreen () { - const [email, setEmail] = useState('') - const [password, setPassword] = useState() - const [confirm, setConfirm] = useState() - const [showPwd, setShowPwd] = useState(false) - const [showPwd2, setShowPwd2] = useState(false) - const [registerData, setRegisterData] = useState({}) - const [avatar, setAvatar] = useState() - const [msg, setMsg] = useState() - const { - isOpen, - onOpen, - onClose - } = useDisclose() +export function RegisterScreen() { + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(); + const [confirm, setConfirm] = useState(); + const [showPwd, setShowPwd] = useState(false); + const [showPwd2, setShowPwd2] = useState(false); + const [registerData, setRegisterData] = useState({}); + const [avatar, setAvatar] = useState(); + const [msg, setMsg] = useState(); + const { isOpen, onOpen, onClose } = useDisclose(); const pickImage = async () => { const result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ImagePicker.MediaTypeOptions.Images, allowsEditing: true, aspect: [1, 1], - quality: 0.2 - }) + quality: 0.2, + }); if (!result.assets[0].canceled) { - setAvatar(result.assets[0].uri) + setAvatar(result.assets[0].uri); if (avatar === undefined) { - setAvatar(result.assets[0].uri) - setRegisterData({ ...registerData, avatar: result.assets[0].uri }) + setAvatar(result.assets[0].uri); + setRegisterData({ ...registerData, avatar: result.assets[0].uri }); } } - } + }; const register = () => { if (Object.values(registerData).length < 6) { - setMsg('請填寫完整') - return + setMsg("請填寫完整"); + return; } createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in - const { user } = userCredential - ActiveController.addUser(user.uid, registerData) + const { user } = userCredential; + ActiveController.addUser(user.uid, registerData); }) .catch((err) => { - setMsg(err.code) - }) - } + setMsg(err.code); + }); + }; return ( -