Index.js 4.02 KB
Newer Older
Deni Rinaldi's avatar
Deni Rinaldi committed
1
import React, { useState, useEffect } from 'react';
Deni Rinaldi's avatar
Deni Rinaldi committed
2 3 4 5 6 7 8
import Menu from '@material-ui/core/Menu';
import MenuItem from '@material-ui/core/MenuItem';
import { makeStyles } from '@material-ui/core/styles';
import Fade from '@material-ui/core/Fade';
import Grid from '@material-ui/core/Grid';
import { Typography, Avatar } from '@material-ui/core';
import Images from '../assets/Images';
Deni Rinaldi's avatar
Deni Rinaldi committed
9
import { Link, useRouteMatch } from 'react-router-dom';
d.arizona's avatar
d.arizona committed
10
import Constant from '../library/Constant';
Deni Rinaldi's avatar
Deni Rinaldi committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

const useStyles = makeStyles({
    avatar: {
        margin: 10,
    },
    orangeAvatar: {
        margin: 10,
        color: '#fff',
        backgroundColor: 'black',
    },
})

function FadeMenu() {
    const [anchorEl, setAnchorEl] = React.useState(null);
    const open = Boolean(anchorEl);

    const handleClick = event => {
        setAnchorEl(event.currentTarget);
    };

    const handleClose = () => {
        setAnchorEl(null);
    };

d.arizona's avatar
d.arizona committed
35 36 37 38 39 40
    const handleLogout = () => {
        localStorage.removeItem(Constant.TOKEN)
        window.location.reload();
        setAnchorEl(null);
    }

Deni Rinaldi's avatar
Deni Rinaldi committed
41 42
    const classes = useStyles();

Deni Rinaldi's avatar
Deni Rinaldi committed
43 44
    let { path, url } = useRouteMatch();

Deni Rinaldi's avatar
Deni Rinaldi committed
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
    return (
        <div>
            <Grid container justify="center" alignItems="center" >
                <div onClick={handleClick}>
                    <img src={Images.dropdownWhite} alt="React Logo" style={{ marginLeft: 15 }} />
                </div>
            </Grid>
            <Menu
                id="fade-menu"
                anchorEl={anchorEl}
                keepMounted
                open={open}
                onClose={handleClose}
                TransitionComponent={Fade}
            >
                <MenuItem disabled={true} style={{ opacity: 1 }}>
                    <div style={{ display: 'flex', alignItems: 'center' }}>
                        <Avatar className={classes.orangeAvatar}>T</Avatar>
                        <div>
                            <Typography>Tommy</Typography>
                            <Typography>tom_my@gmail.com</Typography>
                        </div>
                    </div>
                </MenuItem>
                <MenuItem onClick={handleClose}>
Deni Rinaldi's avatar
Deni Rinaldi committed
70 71
                    <Link to={'/home/profile'}>
                        <div style={{ display: 'flex', padding: 10 }}>
Deni Rinaldi's avatar
Deni Rinaldi committed
72
                            <img src={Images.setting} style={{ height: 20, width: 20, marginRight: 20 }} />
Deni Rinaldi's avatar
Deni Rinaldi committed
73 74 75
                            <Typography style={{ color: 'black', textDecoration: 'none'}}>Settings</Typography>
                        </div>
                    </Link>
Deni Rinaldi's avatar
Deni Rinaldi committed
76
                </MenuItem>
d.arizona's avatar
d.arizona committed
77
                <MenuItem onClick={handleLogout}>
Deni Rinaldi's avatar
Deni Rinaldi committed
78 79 80 81 82 83 84 85 86 87 88
                    <div style={{ display: 'flex', padding: 10 }}>
                        <img src={Images.logout} style={{ height: 20, width: 20, marginRight: 20 }} />
                        <Typography>Logout</Typography>
                    </div>
                </MenuItem>
            </Menu>
        </div>
    );
}

const footerStyle = {
Deni Rinaldi's avatar
Deni Rinaldi committed
89
    backgroundColor: "#0d2846",
Deni Rinaldi's avatar
Deni Rinaldi committed
90 91
    fontSize: "20px",
    color: "white",
Deni Rinaldi's avatar
Deni Rinaldi committed
92
    // borderTop: "1px solid #E7E7E7",
Deni Rinaldi's avatar
Deni Rinaldi committed
93 94
    textAlign: "center",
    padding: "20px",
Deni Rinaldi's avatar
Deni Rinaldi committed
95 96 97
    left: 0,
    bottom: 0,
    right: 0,
d.arizona's avatar
d.arizona committed
98
    height: "80px",
Deni Rinaldi's avatar
Deni Rinaldi committed
99
    width: "100%"
Deni Rinaldi's avatar
Deni Rinaldi committed
100 101 102
};

const phantomStyle = {
Deni Rinaldi's avatar
Deni Rinaldi committed
103
    display: "block",
Deni Rinaldi's avatar
Deni Rinaldi committed
104 105 106
};

function Footer({ children }) {
Deni Rinaldi's avatar
Deni Rinaldi committed
107
    return (
Deni Rinaldi's avatar
Deni Rinaldi committed
108 109 110 111
        <div>
            {/* <div style={phantomStyle} /> */}
            <div style={footerStyle}>{children}</div>
        </div>
Deni Rinaldi's avatar
Deni Rinaldi committed
112
    );
Deni Rinaldi's avatar
Deni Rinaldi committed
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
}

function getWindowDimensions() {
    const { innerWidth: width, innerHeight: height } = window;
    return {
        width,
        height
    };
}

function UseWindowDimensions() {
    const [windowDimensions, setWindowDimensions] = useState(
        getWindowDimensions()
    );

    useEffect(() => {
        function handleResize() {
            setWindowDimensions(getWindowDimensions());
        }

        window.addEventListener("resize", handleResize);
        return () => window.removeEventListener("resize", handleResize);
    }, []);

    return windowDimensions;
}
Deni Rinaldi's avatar
Deni Rinaldi committed
139

Deni Rinaldi's avatar
Deni Rinaldi committed
140
export { FadeMenu, Footer, UseWindowDimensions };