jam-cloud/jam-ui/src/components/navbar/JKProfileDropdown.js

61 lines
2.0 KiB
JavaScript
Raw Normal View History

//import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
2021-10-18 12:25:31 +00:00
import React, { useState } from 'react';
import { DropdownItem, DropdownMenu, DropdownToggle, Dropdown } from 'reactstrap';
import { useAuth } from '../../context/UserAuth';
2021-10-13 10:55:02 +00:00
import JKProfileAvatar from '../profile/JKProfileAvatar';
2021-10-18 12:25:31 +00:00
import { useCookies } from 'react-cookie';
const ProfileDropdown = () => {
const [dropdownOpen, setDropdownOpen] = useState(false);
const toggle = () => setDropdownOpen(prevState => !prevState);
const { currentUser, setCurrentUser, logout } = useAuth();
2021-10-18 12:25:31 +00:00
const [cookies, setCookie, removeCookie] = useCookies(['remember_token']);
const handleLogout = async (event) => {
2021-10-18 12:25:31 +00:00
event.preventDefault();
removeCookie('remember_token', {
domain: `.${process.env.REACT_APP_ORIGIN}`
});
setCurrentUser(null);
logout()
2021-10-18 12:25:31 +00:00
};
return (
2021-10-13 10:55:02 +00:00
<>
2021-10-18 12:25:31 +00:00
{currentUser &&
<Dropdown
nav
inNavbar
data-testid="navbarTopProfileDropdown"
isOpen={dropdownOpen}
toggle={toggle}
onMouseOver={() => {
let windowWidth = window.innerWidth;
windowWidth > 992 && setDropdownOpen(true);
}}
onMouseLeave={() => {
let windowWidth = window.innerWidth;
windowWidth > 992 && setDropdownOpen(false);
}}
>
<DropdownToggle nav className="pr-0">
<JKProfileAvatar url={currentUser.photo_url} className="d-block d-lg-none d-xl-none" />
<span className="d-none d-lg-block">{currentUser && currentUser.name}</span>
</DropdownToggle>
<DropdownMenu right className="dropdown-menu-card">
<div className="bg-white rounded-soft py-2">
2021-10-18 13:25:54 +00:00
{/* <DropdownItem tag={Link} to="/pages/settings">
2021-10-18 12:25:31 +00:00
My Profile
2021-10-18 13:25:54 +00:00
</DropdownItem> */}
2021-10-18 12:25:31 +00:00
<DropdownItem onClick={handleLogout}>Sign out</DropdownItem>
</div>
</DropdownMenu>
</Dropdown>
}
2021-10-13 10:55:02 +00:00
</>
);
};
export default ProfileDropdown;