JoinRoom.js 2.64 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
21
22
23
24
25
26
27
28
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);
        console.log(roomId);
    }

    async function handleSubmit(e) {
        e.preventDefault();
        try {
            // setLoading(true);
            // setError("");
우지원's avatar
0726    
우지원 committed
29
30
31
            console.log('userId:', userId)
            console.log('roomId:', roomId)
            const data = await roomApi.join({ userId: userId, roomId: roomId });
우지원's avatar
e    
우지원 committed
32
33
34
35
36
37
38
39
40
            console.log(data);
            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;