* fix(tracker): fix assist typings * fix(tracker): fix assist typings * change(ui) - preferences - removed old * change(ui) - preferences - wip * change(ui) - preferences - list * change(ui) - right box mardings * change(ui) - preferences - integration item paddings * change(ui) - preferences - integration icons * change(ui) - preferences - integration icons * change(ui) - preferences - integration - check status * change(ui) - preferences - integration - check status * change(ui) - preferences - metadata - move the delete button inside the modal * change(ui) - preferences - webhooks - modal and delete btn changes * change(ui) - preferences - modalContext updates * change(ui) - input field forward refs * change(ui) - metadata - modal * change(ui) - metadata - set deleting item to null * change(ui) - integrations * change(ui) - hoc withcopy * change(ui) - projects * change(ui) - users list modal * change(ui) - projects remove border for the last * change(ui) - integrations new api changes * change(ui) - github and jira changes * change(ui) - github and jira changes Co-authored-by: sylenien <nikita@openreplay.com>
118 lines
4 KiB
JavaScript
118 lines
4 KiB
JavaScript
import React from 'react';
|
|
import { connect } from 'react-redux';
|
|
import cn from 'classnames';
|
|
import { SideMenuitem } from 'UI';
|
|
import stl from './preferencesMenu.module.css';
|
|
import { CLIENT_TABS, client as clientRoute } from 'App/routes';
|
|
import { withRouter } from 'react-router-dom';
|
|
|
|
function PreferencesMenu({ account, activeTab, history, isEnterprise }) {
|
|
const isAdmin = account.admin || account.superAdmin;
|
|
const setTab = (tab) => {
|
|
history.push(clientRoute(tab));
|
|
};
|
|
|
|
return (
|
|
<div className={cn(stl.wrapper, 'h-full overflow-y-auto pb-24')}>
|
|
<div className={cn(stl.header, 'flex items-end')}>
|
|
<div className={stl.label}>
|
|
<span>Preferences</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.PROFILE}
|
|
title="Account"
|
|
iconName="user-circle"
|
|
onClick={() => setTab(CLIENT_TABS.PROFILE)}
|
|
/>
|
|
</div>
|
|
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.INTEGRATIONS}
|
|
title="Integrations"
|
|
iconName="puzzle-piece"
|
|
onClick={() => setTab(CLIENT_TABS.INTEGRATIONS)}
|
|
/>
|
|
</div>
|
|
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
iconName="tags"
|
|
active={activeTab === CLIENT_TABS.CUSTOM_FIELDS}
|
|
onClick={() => setTab(CLIENT_TABS.CUSTOM_FIELDS)}
|
|
title="Metadata"
|
|
/>
|
|
</div>
|
|
|
|
{
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.WEBHOOKS}
|
|
title="Webhooks"
|
|
iconName="anchor"
|
|
onClick={() => setTab(CLIENT_TABS.WEBHOOKS)}
|
|
/>
|
|
</div>
|
|
}
|
|
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.SITES}
|
|
title="Projects"
|
|
iconName="window-restore"
|
|
onClick={() => setTab(CLIENT_TABS.SITES)}
|
|
/>
|
|
</div>
|
|
|
|
{isEnterprise && isAdmin && (
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.MANAGE_ROLES}
|
|
title="Roles & Access"
|
|
iconName="diagram-3"
|
|
onClick={() => setTab(CLIENT_TABS.MANAGE_ROLES)}
|
|
/>
|
|
</div>
|
|
)}
|
|
|
|
{isEnterprise && isAdmin && (
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.AUDIT}
|
|
title="Audit"
|
|
iconName="list-ul"
|
|
onClick={() => setTab(CLIENT_TABS.AUDIT)}
|
|
/>
|
|
</div>
|
|
)}
|
|
|
|
{isAdmin && (
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.MANAGE_USERS}
|
|
title="Team"
|
|
iconName="users"
|
|
onClick={() => setTab(CLIENT_TABS.MANAGE_USERS)}
|
|
/>
|
|
</div>
|
|
)}
|
|
|
|
<div className="mb-2">
|
|
<SideMenuitem
|
|
active={activeTab === CLIENT_TABS.NOTIFICATIONS}
|
|
title="Notifications"
|
|
iconName="bell"
|
|
onClick={() => setTab(CLIENT_TABS.NOTIFICATIONS)}
|
|
/>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default connect((state) => ({
|
|
isEnterprise: state.getIn(['user', 'account', 'edition']) === 'ee',
|
|
account: state.getIn(['user', 'account']),
|
|
}))(withRouter(PreferencesMenu));
|