diff --git a/frontend/src/component/common/BreadcrumbNav/BreadcrumbNav.tsx b/frontend/src/component/common/BreadcrumbNav/BreadcrumbNav.tsx index a3617ee0f7..cd23dc406a 100644 --- a/frontend/src/component/common/BreadcrumbNav/BreadcrumbNav.tsx +++ b/frontend/src/component/common/BreadcrumbNav/BreadcrumbNav.tsx @@ -1,9 +1,11 @@ import Breadcrumbs from '@material-ui/core/Breadcrumbs'; import { Link, useLocation } from 'react-router-dom'; +import usePermissions from '../../../hooks/usePermissions'; import ConditionallyRender from '../ConditionallyRender'; import { useStyles } from './BreadcrumbNav.styles'; const BreadcrumbNav = () => { + const { isAdmin } = usePermissions(); const styles = useStyles(); const location = useLocation(); @@ -24,28 +26,40 @@ const BreadcrumbNav = () => { return ( 1} + condition={ + (location.pathname.includes('admin') && isAdmin()) || + !location.pathname.includes('admin') + } show={ - - {paths.map((path, index) => { - const lastItem = index === paths.length - 1; - if (lastItem) { - return ( -

- {path} -

- ); - } - return ( - - {path} - - ); - })} -
+ 1} + show={ + + {paths.map((path, index) => { + const lastItem = index === paths.length - 1; + if (lastItem) { + return ( +

+ {path} +

+ ); + } + return ( + + {path} + + ); + })} +
+ } + /> } /> ); diff --git a/frontend/src/component/feature/variant/AddVariant/AddVariant.jsx b/frontend/src/component/feature/variant/AddVariant/AddVariant.jsx index 62ac98fc01..b857026722 100644 --- a/frontend/src/component/feature/variant/AddVariant/AddVariant.jsx +++ b/frontend/src/component/feature/variant/AddVariant/AddVariant.jsx @@ -8,6 +8,7 @@ import { TextField, InputAdornment, Button, + Tooltip, } from '@material-ui/core'; import { Info } from '@material-ui/icons'; import Dialog from '../../../common/Dialogue'; @@ -46,7 +47,7 @@ const AddVariant = ({ name: editVariant.name, weight: editVariant.weight / 10, weightType: editVariant.weightType || weightTypes.VARIABLE, - stickiness: editVariant.stickiness + stickiness: editVariant.stickiness, }); if (editVariant.payload) { setPayload(editVariant.payload); @@ -245,7 +246,12 @@ const AddVariant = ({

Payload - + + +

@@ -256,6 +262,7 @@ const AddVariant = ({ value={payload.type} options={payloadOptions} onChange={onPayload} + style={{ minWidth: '100px' }} /> @@ -276,7 +283,14 @@ const AddVariant = ({ show={

Overrides - + + +

} /> diff --git a/frontend/src/component/menu/Header/Header.styles.ts b/frontend/src/component/menu/Header/Header.styles.ts index 1a7c9db2eb..a5de48c9a8 100644 --- a/frontend/src/component/menu/Header/Header.styles.ts +++ b/frontend/src/component/menu/Header/Header.styles.ts @@ -38,6 +38,7 @@ export const useStyles = makeStyles(theme => ({ fontFamily: theme.typography.fontFamily, alignItems: 'center', color: 'inherit', + cursor: 'pointer', }, headerTitle: { fontSize: '1.4rem', diff --git a/frontend/src/component/menu/Header/Header.tsx b/frontend/src/component/menu/Header/Header.tsx index 559d77dfa1..bda2759a9e 100644 --- a/frontend/src/component/menu/Header/Header.tsx +++ b/frontend/src/component/menu/Header/Header.tsx @@ -100,9 +100,6 @@ const Header = () => { onClick={e => setAnchorElAdvanced(e.currentTarget) } - onMouseEnter={e => - setAnchorElAdvanced(e.currentTarget) - } > Navigate @@ -140,9 +137,6 @@ const Header = () => { onClick={e => setAnchorEl(e.currentTarget) } - onMouseEnter={e => - setAnchorEl(e.currentTarget) - } > !route.parent); const computeRoutes = () => { + const apiAccess = routes.find(route => route.path === '/admin/api'); + const mainNavRoutes = + baseRoutes.filter( + route => + route.path !== '/admin' && + route.path !== '/logout' && + route.path !== '/history' + ) || []; + + mainNavRoutes.push(apiAccess); + const computedRoutes = { - mainNavRoutes: - baseRoutes.filter( - route => - route.path !== '/admin' && - route.path !== '/logout' && - route.path !== '/history' - ) || [], + mainNavRoutes, adminRoutes: routes.filter( route => diff --git a/frontend/src/component/project/form-project-component.jsx b/frontend/src/component/project/form-project-component.jsx index 5f8349bc54..05783d6859 100644 --- a/frontend/src/component/project/form-project-component.jsx +++ b/frontend/src/component/project/form-project-component.jsx @@ -78,7 +78,13 @@ class ProjectFormComponent extends Component { const { project } = this.state; evt.preventDefault(); - this.props.history.push(`/projects/${project.id}`); + const { editMode } = this.props; + + if (editMode) { + this.props.history.push(`/projects/${project.id}`); + return; + } + this.props.history.goBack(); }; onSubmit = async evt => { diff --git a/frontend/src/page/admin/api/index.js b/frontend/src/page/admin/api/index.js index 7a69775d4d..6e59440b79 100644 --- a/frontend/src/page/admin/api/index.js +++ b/frontend/src/page/admin/api/index.js @@ -2,19 +2,26 @@ import PropTypes from 'prop-types'; import ApiKeyList from './api-key-list-container'; import AdminMenu from '../admin-menu'; +import usePermissions from '../../../hooks/usePermissions'; +import ConditionallyRender from '../../../component/common/ConditionallyRender'; + +const ApiPage = ({ history }) => { + const { isAdmin } = usePermissions(); -const render = ({ history }) => { return (
- + } + />
); }; -render.propTypes = { +ApiPage.propTypes = { match: PropTypes.object.isRequired, history: PropTypes.object.isRequired, }; -export default render; +export default ApiPage;