Login.js 4.42 KB
Newer Older
한규민's avatar
한규민 committed
1
import { useState } from "react";
한규민's avatar
login    
한규민 committed
2
3
import styles from "./login.module.scss";

한규민's avatar
한규민 committed
4
const Login = () => {
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    //useState를 이용해서 각 state 생성 및 초기값 저장
    const [state, setState] = useState(true); // 이 줄은 css에 해당하는 state
    const [loginText, setLoginText] = useState({
        id:'',
        password:''
    });

    const [guestText, setGusetText] = useState({
        guestName:'',
        gusetBirthday:'',
        gusetMbnum:'',
        guestPassword:''
    })

    //input태그에 걸려있는 onchange에서 실행할 함수설정
    const handleLoginOnChange = (e) =>{
        // ... 전개 연산자
        // 현재 state에 방금 변화한 값을 다시 저장함
        setLoginText({ ...loginText,
            [e.target.name]:e.target.value,
        })
    };

    const handleGuestOnChange = (e) =>{
        setGusetText({ ...guestText,
            [e.target.name]:e.target.value
        })
    }
한규민's avatar
한규민 committed
33
34

    return (
한규민's avatar
한규민 committed
35
        <div className={`d-flex flex-column col-md-5 col-10`}>
한규민's avatar
한규민 committed
36
            {/* nav-tabs */}
한규민's avatar
한규민 committed
37
            <ul className="nav nav-fill nav-tabs w-100" id="loginTab" role="tablist">
한규민's avatar
login    
한규민 committed
38
                <li className="nav-item fs-6" role="presentation">
39
                    <button className={`nav-link active px-2 ${styles.fontSize}`} style={{ color: state ? "black" : "#FEDC00", backgroundColor: state ? "#FEDC00" : "black"}} 
한규민's avatar
login    
한규민 committed
40
41
                    id="login-tab" data-bs-toggle="tab" data-bs-target="#login" type="button" role="tab" aria-controls="login" aria-selected="true" 
                    onClick={() => setState(true)}>로그인</button>
한규민's avatar
한규민 committed
42
43
                </li>
                <li className="nav-item" role="presentation">
한규민's avatar
login    
한규민 committed
44
45
                    <button className={`nav-link px-2 ${styles.fontSize}`}
                    id="guest-tab" data-bs-toggle="tab" data-bs-target="#guest" type="button" role="tab" aria-controls="guest" aria-selected="false" 
46
                    onClick={() => setState(false)} style={{ color: state ? "#FEDC00" : "black", backgroundColor: state ? "black" : "#FEDC00" }}>비회원 예매 확인</button>
한규민's avatar
한규민 committed
47
48
                </li>
            </ul>
한규민's avatar
한규민 committed
49

한규민's avatar
한규민 committed
50
            <div className="tab-content w-100" id="myTabContent">
한규민's avatar
한규민 committed
51
52
                {/* 로그인 */}
                <div className="tab-pane fade show active" id="login" role="tabpanel" aria-labelledby="login-tab">
한규민's avatar
한규민 committed
53
                    <div className="d-flex flex-column ">
54
55
56
                        <input className={styles.input} type="text" name="id" placeholder="ID" onChange={handleLoginOnChange}/>
                        <input className={styles.input} type="text" name="password" placeholder="Password" onChange={handleLoginOnChange} minlength="8" required />
                    <input className={`border-0 rounded-2 mt-2 ${styles.butterYellow} ${styles.btnHover}`} type="submit" value="Login" />
한규민's avatar
한규민 committed
57
                        <span><a href="./signup" className={styles.intoSignupPage}>회원이 아니십니까?</a></span>
한규민's avatar
한규민 committed
58
59
60
61
62
                    </div>
                </div>

                {/* 비회원예매 학인 */}
                <div className="tab-pane fade" id="guest" role="tabpanel" aria-labelledby="guest-tab">
한규민's avatar
한규민 committed
63
                    <div className="d-flex flex-column">
64
65
66
67
                        <input className={styles.input} type="text" name="guestName" id="guestName" placeholder="이름" onChange={handleGuestOnChange} minlength="8" required />
                        <input className={styles.input} type="number" name="gusetBirthday" id="gusetBirthday" placeholder="생년월일" onChange={handleGuestOnChange} minlength="8" required />
                        <input className={styles.input} type="number" name="gusetMbnum" id="gusetMbnum" placeholder="휴대폰 번호" onChange={handleGuestOnChange} minlength="8" required />
                        <input className={styles.input} type="text" name="guestPassword" id="password" placeholder="비밀번호" onChange={handleGuestOnChange} minlength="8" required />
한규민's avatar
한규민 committed
68
69

                        <p className={`text-white ${styles.fontSizeTwo}`}>
한규민's avatar
한규민 committed
70
71
                             비회원 정보  입력  예매 내역 확인/취소  티켓 발권이 어려울  있으니 다시 한번 확인해 주시기 바랍니다.
                        </p>
72
                            <input className={`border-0 rounded-2 mt-2 ${styles.butterYellow} ${styles.btnHover}`} type="submit" value="비회원 예매 확인" />
한규민's avatar
한규민 committed
73
74
                    </div>
                </div>
한규민's avatar
login    
한규민 committed
75
76
77
78
79
80
            </div>
        </div>
    )
}

export default Login