Menu.js 3.03 KB
Newer Older
Ha YeaJin's avatar
pages    
Ha YeaJin committed
1
import React, { useState, useEffect } from 'react';
CHAERIN KIM's avatar
CHAERIN KIM committed
2
import { Link, Redirect } from 'react-router-dom';
Ha YeaJin's avatar
pages    
Ha YeaJin committed
3
import styled from 'styled-components';
Ha YeaJin's avatar
Ha YeaJin committed
4
import { Navbar, Nav, NavLink } from 'react-bootstrap';
Ha YeaJin's avatar
pages    
Ha YeaJin committed
5

Ha YeaJin's avatar
Ha YeaJin committed
6
const MENU = styled(Navbar)`
Ha YeaJin's avatar
Ha YeaJin committed
7
8
9
    background-color: #7B031D;

    a {
Ha YeaJin's avatar
Ha YeaJin committed
10
        color : white;
11
    }
Ha YeaJin's avatar
pages    
Ha YeaJin committed
12
13
14
`

function Menu() {
CHAERIN KIM's avatar
CHAERIN KIM committed
15
    const [state, setState] = useState()
16
    const [user, setUser] = useState({ role: "" })
CHAERIN KIM's avatar
CHAERIN KIM committed
17
    const name = localStorage.getItem('name');
Ha YeaJin's avatar
Ha YeaJin committed
18

CHAERIN KIM's avatar
CHAERIN KIM committed
19
    function logout() {
CHAERIN KIM's avatar
CHAERIN KIM committed
20
        localStorage.clear();
CHAERIN KIM's avatar
CHAERIN KIM committed
21
        alert("로그아웃 되었습니다.");
CHAERIN KIM's avatar
CHAERIN KIM committed
22
23
24
        setState(true);
    }

Ha YeaJin's avatar
Ha YeaJin committed
25
26
27
28
    useEffect(() => {
        acheck();
    }, [])

29
30
31
32
33
34
35
36
37
38
39
    function acheck() {
        axios.get(`/users/${localStorage.getItem('_id')}`)
            .then(res => {
                if (res.data.role == "admin") {
                    setUser(res.data)
                }
            }).catch(err => {
                alert(err.error)
            });
    }

Ha YeaJin's avatar
Ha YeaJin committed
40
    if (state) return <Redirect to="/" />
Ha YeaJin's avatar
pages    
Ha YeaJin committed
41
    return (
Ha YeaJin's avatar
Ha YeaJin committed
42
43
44
45
46
        <MENU expand="md" variant="dark">
            <Navbar.Brand href="#">대관 서비스</Navbar.Brand>
            <Navbar.Toggle aria-controls="basic-navbar-nav" />
            <Navbar.Collapse id="basic-navbar-nav">
                <Nav className="mr-auto">
Ha YeaJin's avatar
Ha YeaJin committed
47
48
49
50
                    <NavLink as={Link} to="/notice">공지사항</NavLink>
                    <NavLink as={Link} to="/home">대관 현황</NavLink>

                    <NavLink as={Link} to={{
Ha YeaJin's avatar
Ha YeaJin committed
51
52
                        pathname: `/apply/${localStorage.getItem('_id')}`,
                        state: { id: localStorage.getItem('_id') },
Ha YeaJin's avatar
Ha YeaJin committed
53
54
55
                    }} className="nav-link">대관 신청</NavLink>

                    <NavLink as={Link} to={{
Ha YeaJin's avatar
Ha YeaJin committed
56
57
58
                        pathname: `/check/${localStorage.getItem('_id')}`,
                        state: { id: localStorage.getItem('_id') },
                    }} className="nav-link">
Ha YeaJin's avatar
Ha YeaJin committed
59
60
                        대관 확인/취소</NavLink>

Ha YeaJin's avatar
Ha YeaJin committed
61
62
63
                    {user.role === "admin" ? (
                        <NavLink as={Link} to={{
                            pathname: `/acheck/${localStorage.getItem('_id')}`,
64
65
                            state: { id: localStorage.getItem('_id') },
                        }} className="nav-link">
Ha YeaJin's avatar
Ha YeaJin committed
66
                            대관 확인/취소(관리자)</NavLink>) : null}
Ha YeaJin's avatar
Ha YeaJin committed
67
68
69
70
71
72
                </Nav>
                <Nav >
                    <NavLink>
                        <small className="d-flex flex-row justify-content-end">
                            <div className="text-white text-right font-weight-light pr-2">{name}</div>
                            <NavLink className="p-0" as={Link} to={{
Ha YeaJin's avatar
Ha YeaJin committed
73
                                pathname: `/change/${localStorage.getItem('_id')}`,
74
                                state: { id: localStorage.getItem('_id') },
Ha YeaJin's avatar
Ha YeaJin committed
75
76
                            }}>  비밀번호 변경 </NavLink> / <NavLink className="p-0" onClick={logout} > 로그아웃</NavLink></small>
                    </NavLink>
Ha YeaJin's avatar
Ha YeaJin committed
77
78
79
                </Nav>
            </Navbar.Collapse>
        </MENU >
Ha YeaJin's avatar
pages    
Ha YeaJin committed
80
81
82
83
    )
}

export default Menu