JoinRoom.js 2.66 KB
Newer Older
우지원's avatar
e    
우지원 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { useEffect, useState } from "react";
import { Redirect } from "react-router-dom";
import roomApi from "../../apis/room.api";

const userId = localStorage.getItem('user');

const JoinRoom = () => {
    const [roomId, setRoomId] = useState('');
    const [disabled, setDisabled] = useState(true);
    const [error, setError] = useState("");
    const [success, setSuccess] = useState(false);

    useEffect(() => {
        const isRoom = Object.values(roomApi).every((el) => Boolean(el));
        isRoom ? setDisabled(false) : setDisabled(true);
    }, [roomId]);

    function handleChange(event) {
        const { value } = event.target;
        setRoomId(value);
우지원's avatar
0728    
우지원 committed
21
        // console.log(roomId);
우지원's avatar
e    
우지원 committed
22
23
24
25
26
27
28
    }

    async function handleSubmit(e) {
        e.preventDefault();
        try {
            // setLoading(true);
            // setError("");
우지원's avatar
0728    
우지원 committed
29
30
            // console.log('userId:', userId)
            // console.log('roomId:', roomId)
우지원's avatar
0726    
우지원 committed
31
            const data = await roomApi.join({ userId: userId, roomId: roomId });
우지원's avatar
0728    
우지원 committed
32
            // console.log(data);
우지원's avatar
e    
우지원 committed
33
34
35
36
37
38
39
40
            setSuccess(true);
        } catch (error) {
            // catchErrors(error, setError);
        } finally {
            // setLoading(false);
        }
    }
    if (success) {
우지원's avatar
0726    
우지원 committed
41
        return <Redirect to="/user" />;
우지원's avatar
e    
우지원 committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
    }

    return (
        <div className="modal-content">
            <form onSubmit={handleSubmit}>
                <div className="modal-header">
                    <div className="modal-title" id="joinModal">방참여하기</div>
                    <button
                        type="button"
                        className="btn-close"
                        data-bs-dismiss="modal"
                        aria-label="Close"
                    ></button>
                </div>
                <div className="modal-body">
                    <div className="input-group mb-3">
                        <input
                            type="text"
                            className="form-control"
                            placeholder="참여코드를 입력하세요"
                            aria-label="참여코드를 입력하세요"
                            aria-describedby="basic-addon1"
                            name="roomId"
                            value={roomId}
                            onChange={handleChange}
                        />
                    </div>
                    <div className="modal-footer">
                        <button type="submit" className="btn btn-primary">
                            확인
                        </button>
                    </div>
                </div>
            </form>
        </div>
    );
};

export default JoinRoom;