Skip to content
This repository has been archived by the owner on Aug 31, 2022. It is now read-only.

Commit

Permalink
adds login modal to overview page
Browse files Browse the repository at this point in the history
  • Loading branch information
Anisha1234 committed Jan 25, 2021
1 parent 193a4b0 commit 7213b87
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/components/LoginHint/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Title, Button } from '@patternfly/react-core';
store,
auth: auth.auth,
}))
class Overview extends Component {
class LoginHint extends Component {
navigateToAuth = () => {
const { dispatch } = this.props;
dispatch(routerRedux.push(`/auth`));
Expand All @@ -33,4 +33,4 @@ class Overview extends Component {
}
}

export default Overview;
export default LoginHint;
80 changes: 80 additions & 0 deletions src/components/LoginModal/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import React from 'react';
import {
Modal,
ModalVariant,
Button,
TextContent,
Text,
TextVariants,
} from '@patternfly/react-core';
import { routerRedux } from 'dva/router';
import { connect } from 'dva';

@connect(auth => ({
auth: auth.auth,
}))
class LoginModal extends React.Component {
constructor(props) {
super(props);
this.state = {
isModalOpen: false,
};
}

componentDidMount() {
this.handleModalToggle();
}

handleModalToggle = () => {
this.setState(({ isModalOpen }) => ({
isModalOpen: !isModalOpen,
}));
};

handleModalCancel = () => {
const { dispatch } = this.props;
this.setState(({ isModalOpen }) => ({
isModalOpen: !isModalOpen,
}));
dispatch(routerRedux.push(`/`));
};

handleLoginModal = () => {
const { dispatch } = this.props;
this.setState(({ isModalOpen }) => ({
isModalOpen: !isModalOpen,
}));
dispatch(routerRedux.push(`/auth`));
};

render() {
const { isModalOpen } = this.state;

return (
<React.Fragment>
<Modal
variant={ModalVariant.small}
isOpen={isModalOpen}
onClose={this.handleModalCancel}
showClose="false"
actions={[
<Button key="confirm" variant="primary" onClick={this.handleLoginModal}>
Proceed
</Button>,
<Button key="cancel" variant="link" onClick={this.handleModalCancel}>
Cancel
</Button>,
]}
>
<TextContent>
<Text component={TextVariants.h4}>
This action requires login. Please login to Pbench Dashboard to continue.
</Text>
</TextContent>
</Modal>
</React.Fragment>
);
}
}

export default LoginModal;
4 changes: 2 additions & 2 deletions src/pages/Overview/index.less
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@
.dropdownContent {
position: absolute;
background-color: #f1f1f1;
margin-right: -2%;
min-width: 160px;
margin-left: -5%;
min-width: 130px;
overflow: auto;
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
}
Expand Down
11 changes: 5 additions & 6 deletions src/pages/PrivateRoute/index.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
import React, { Component, Fragment } from 'react';
import AuthLayout from '@/components/AuthLayout';
import { routerRedux } from 'dva/router';
// import AuthLayout from '@/components/AuthLayout';
// import { routerRedux } from 'dva/router';
import { connect } from 'dva';
import LoginModal from '@/components/LoginModal';

@connect(auth => ({
auth: auth.auth,
}))
class PrivateRoute extends Component {
render() {
const { children, auth, dispatch } = this.props;
const { children, auth } = this.props;

if (auth.auth.username === 'admin') {
return <Fragment>{children}</Fragment>;
}

dispatch(routerRedux.push(`/auth`));
return <AuthLayout />;
return <LoginModal />;
}
}
export default PrivateRoute;

0 comments on commit 7213b87

Please sign in to comment.