Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 62 additions & 28 deletions client/modules/IDE/components/Header/Nav.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useContext } from 'react';
import React, { useContext, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { sortBy } from 'lodash';
import { Link } from 'react-router-dom';
Expand Down Expand Up @@ -31,6 +31,8 @@ import {
import { logoutUser } from '../../../User/actions';
import { CmControllerContext } from '../../pages/IDEView';
import MobileNav from './MobileNav';
import Modal from '../Modal';
import Button from '../../../../common/Button';

const Nav = ({ layout }) => (
<MediaQuery minWidth={770}>
Expand Down Expand Up @@ -306,39 +308,71 @@ const UnauthenticatedUserMenu = () => {

const AuthenticatedUserMenu = () => {
const username = useSelector((state) => state.user.username);
const [isModalOpen, setIsModalOpen] = useState(false);
const dispatch = useDispatch();
const handleCancel = () => setIsModalOpen(false);
const handleConfirm = () => {
dispatch(logoutUser());
setIsModalOpen(false);
};

const { t } = useTranslation();
const dispatch = useDispatch();

return (
<ul className="nav__items-right" title="user-menu">
{getConfig('TRANSLATIONS_ENABLED') && <LanguageMenu />}
<NavDropdownMenu
id="account"
title={
<span>
{t('Nav.Auth.Hello')}, {username}!
</span>
}
>
<NavMenuItem href={`/${username}/sketches`}>
{t('Nav.Auth.MySketches')}
</NavMenuItem>
<NavMenuItem
href={`/${username}/collections`}
hideIf={!getConfig('UI_COLLECTIONS_ENABLED')}
<>
{isModalOpen && (
<div>
<Modal
title="Are you sure you want to logout?"
closeAriaLabel="test_labe"
contentClassName="logout-confirmation"
onClose={handleCancel}
>
<div
style={{
display: 'flex',
flexDirection: 'row',
justifyContent: 'space-around'
}}
>
<Button onClick={handleConfirm}>Confirm</Button>
<Button onClick={handleCancel}>Cancel</Button>
</div>
</Modal>
</div>
)}
<ul className="nav__items-right" title="user-menu">
{getConfig('TRANSLATIONS_ENABLED') && <LanguageMenu />}
<NavDropdownMenu
id="account"
title={
<span>
{t('Nav.Auth.Hello')}, {username}!
</span>
}
>
{t('Nav.Auth.MyCollections')}
</NavMenuItem>
<NavMenuItem href={`/${username}/assets`}>
{t('Nav.Auth.MyAssets')}
</NavMenuItem>
<NavMenuItem href="/account">{t('Preferences.Settings')}</NavMenuItem>
<NavMenuItem onClick={() => dispatch(logoutUser())}>
<NavMenuItem href={`/${username}/sketches`}>
{t('Nav.Auth.MySketches')}
</NavMenuItem>
<NavMenuItem
href={`/${username}/collections`}
hideIf={!getConfig('UI_COLLECTIONS_ENABLED')}
>
{t('Nav.Auth.MyCollections')}
</NavMenuItem>
<NavMenuItem href={`/${username}/assets`}>
{t('Nav.Auth.MyAssets')}
</NavMenuItem>
<NavMenuItem href="/account">{t('Preferences.Settings')}</NavMenuItem>
{/* <NavMenuItem onClick={() => dispatch(logoutUser())}>
{t('Nav.Auth.LogOut')}
</NavMenuItem>
</NavDropdownMenu>
</ul>
</NavMenuItem> */}
<NavMenuItem onClick={() => setIsModalOpen(true)}>
{t('Nav.Auth.LogOut')}
</NavMenuItem>
</NavDropdownMenu>
</ul>
</>
);
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ exports[`Nav renders dashboard version for mobile 1`] = `
>
<test-file-stub
aria-hidden="true"
classname="sc-fujyAs cSTVlM"
classname="sc-imWYAI dGfOkk"
focusable="false"
/>
</button>
Expand All @@ -346,7 +346,7 @@ exports[`Nav renders dashboard version for mobile 1`] = `
>
<test-file-stub
aria-hidden="true"
classname="sc-iqAclL iOZiVo"
classname="sc-dAlyuH ihNotH"
focusable="false"
/>
</button>
Expand Down Expand Up @@ -974,7 +974,7 @@ exports[`Nav renders editor version for mobile 1`] = `
>
<test-file-stub
aria-hidden="true"
classname="sc-fujyAs cSTVlM"
classname="sc-imWYAI dGfOkk"
focusable="false"
/>
</button>
Expand All @@ -990,7 +990,7 @@ exports[`Nav renders editor version for mobile 1`] = `
>
<test-file-stub
aria-hidden="true"
classname="sc-iqAclL iOZiVo"
classname="sc-dAlyuH ihNotH"
focusable="false"
/>
</button>
Expand Down