import React, {useState, useRef, useEffect} from 'react'; import { View, StyleSheet, Text, Keyboard, Alert, TouchableOpacity, Image, TouchableWithoutFeedback, } from 'react-native'; import Button from '../components/Button'; import TextInput, {IconNames, ReturnKeyTypes} from '../components/TextInput'; import {GRAY, PRIMARY} from '../color'; import PropTypes from 'prop-types'; const SignInScreen = ({navigation}) => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const passwordRef = useRef(null); const [disabled, setDisabled] = useState(true); const [isLoading, setIsLoading] = useState(false); useEffect(() => { setDisabled(!email || !password); }, [email, password]); const handleDismissKeyboard = () => { Keyboard.dismiss(); }; const onSubmit = async () => { if (!disabled && !isLoading) { Keyboard.dismiss(); setIsLoading(true); try { try { // 로그인 성공 후 메인 화면으로 이동 navigation.navigate('Main'); } catch (e) { Alert.alert('로그인 실패'); setIsLoading(false); } } catch (e) { Alert.alert('로그인 실패', e, [ { text: 'Ok', onPress: () => setIsLoading(false), }, ]); } } }; return ( 스마트 전자서명 시스템 setEmail(text.trim())} title={'아이디'} returnKeyType={ReturnKeyTypes.NEXT} iconName={IconNames.EMAIL} onSubmitEditing={() => passwordRef.current.focus()} /> setPassword(text.trim())} title={'비밀번호'} secureTextEntry iconName={IconNames.PASSWORD} onSubmitEditing={onSubmit} />