코드 수정
/src/pages/signin.js
import React, { useState, useContext } from 'react';
import { useNavigate } from 'react-router-dom';
import { FirebaseContext } from '../context/firebase';
import { Form } from '../components';
import { HeaderContainer } from '../containers/header';
import { FooterContainer } from '../containers/footer';
import * as ROUTES from '../constants/routes';
import { signInWithEmailAndPassword } from 'firebase/auth';
export default function SignIn() {
const navigate = useNavigate();
const { auth } = useContext(FirebaseContext);
const [emailAddress, setEmailAddress] = useState('');
const [password, setPassword] = useState('');
const [error, setError] = useState('');
const isInvalid = password === '' || emailAddress === '';
const handleSignin = (event) => {
event.preventDefault();
return signInWithEmailAndPassword(auth, emailAddress, password)
.then(() => {
navigate(ROUTES.BROWSE);
})
.catch((error) => {
setEmailAddress('');
setPassword('');
setError(error.message);
});
};
return (
<>
<HeaderContainer>
<Form>
<Form.Title>Sign In</Form.Title>
{error && <Form.Error data-testid="error">{error}</Form.Error>}
<Form.Base onSubmit={handleSignin} method="POST">
<Form.Input
placeholder="Email address"
value={emailAddress}
onChange={({ target }) => setEmailAddress(target.value)}
/>
<Form.Input
type="password"
value={password}
autoComplete="off"
placeholder="Password"
onChange={({ target }) => setPassword(target.value)}
/>
<Form.Submit disabled={isInvalid} type="submit" data-testid="sign-in">
Sign In
</Form.Submit>
</Form.Base>
<Form.Text>
New to Netflix? <Form.Link to="/signup">Sign up now.</Form.Link>
</Form.Text>
<Form.TextSmall>
This page is protected by Google reCAPTCHA to ensure you're not a bot. Learn more.
</Form.TextSmall>
</Form>
</HeaderContainer>
<FooterContainer />
</>
);
}
잘 로그인이 된다.
'Dev > React 넷플릭스클론' 카테고리의 다른 글
넷플릭스 클론코딩 12 슬라이드 구현 및 github page 설정 (0) | 2023.09.07 |
---|---|
넷플릭스 클론코딩 11 라우팅 페이지 (0) | 2023.09.07 |
넷플릭스 클론코딩 9 회원가입 페이지 만들기 (0) | 2023.09.07 |
넷플릭스 클론코딩 8 firebase 설정 (0) | 2023.09.06 |
넷플릭스 클론코딩 7 메인페이지, Route 설정 (0) | 2023.09.06 |