nav login fixup

This commit is contained in:
Jake McDermott
2018-10-16 00:24:44 -04:00
parent 9f2b2b3456
commit 05af4c7c53
3 changed files with 82 additions and 82 deletions

View File

@@ -1,5 +1,4 @@
import React, { Fragment } from 'react'; import React, { Fragment } from 'react';
import { render } from 'react-dom';
import { import {
HashRouter as Router, HashRouter as Router,
Route, Route,
@@ -87,7 +86,7 @@ class App extends React.Component {
super(props); super(props);
this.state = { this.state = {
activeItem: 'dashboard', activeItem: window.location.hash.split("#/").pop().split("/").shift(),
isNavOpen: (typeof window !== 'undefined' && isNavOpen: (typeof window !== 'undefined' &&
window.innerWidth >= parseInt(breakpointMd.value, 10)), window.innerWidth >= parseInt(breakpointMd.value, 10)),
}; };
@@ -97,7 +96,7 @@ class App extends React.Component {
const { isNavOpen } = this.state; const { isNavOpen } = this.state;
this.setState({ isNavOpen: !isNavOpen }); this.setState({ isNavOpen: !isNavOpen });
}; }
onNavSelect = ({ itemId }) => { onNavSelect = ({ itemId }) => {
this.setState({ activeItem: itemId }); this.setState({ activeItem: itemId });
@@ -148,9 +147,9 @@ class App extends React.Component {
<PageSidebar <PageSidebar
isNavOpen={isNavOpen} isNavOpen={isNavOpen}
nav={( nav={(
<Nav onSelect={this.onNavSelect} aria-label="Primary Navigation"> <Nav aria-label="Primary Navigation">
<NavGroup title="Views"> <NavGroup title="Views">
<NavItem to="#/home" itemId="dashboard" isActive={activeItem === 'dashboard'}>Dashboard</NavItem> <NavItem to="#/home" itemId="dashboard" isActive={activeItem ==='home'}>Dashboard</NavItem>
<NavItem to="#/jobs" itemId="jobs" isActive={activeItem === 'jobs'}>Jobs</NavItem> <NavItem to="#/jobs" itemId="jobs" isActive={activeItem === 'jobs'}>Jobs</NavItem>
<NavItem to="#/schedules" itemId="schedules" isActive={activeItem === 'schedules'}>Schedules</NavItem> <NavItem to="#/schedules" itemId="schedules" isActive={activeItem === 'schedules'}>Schedules</NavItem>
<NavItem to="#/portal" itemId="portal" isActive={activeItem === 'portal'}>My View</NavItem> <NavItem to="#/portal" itemId="portal" isActive={activeItem === 'portal'}>My View</NavItem>
@@ -179,7 +178,6 @@ class App extends React.Component {
)} )}
/> />
)}> )}>
<Switch>
<Route exact path="/" component={() => (<Redirect to="/home" />)} /> <Route exact path="/" component={() => (<Redirect to="/home" />)} />
<Route path="/home" component={Dashboard} /> <Route path="/home" component={Dashboard} />
<Route path="/jobs" component={Jobs} /> <Route path="/jobs" component={Jobs} />
@@ -199,7 +197,6 @@ class App extends React.Component {
<Route path="/instance_groups" component={InstanceGroups} /> <Route path="/instance_groups" component={InstanceGroups} />
<Route path="/applications" component={Applications} /> <Route path="/applications" component={Applications} />
<Route path="/settings" component={Settings} /> <Route path="/settings" component={Settings} />
</Switch>
</Page> </Page>
)} /> )} />
</Switch> </Switch>
@@ -209,11 +206,4 @@ class App extends React.Component {
} }
} }
const el = document.getElementById('app'); export default App;
api.getRoot()
.then(({ data }) => {
const { custom_logo, custom_login_info } = data;
render(<App logo={custom_logo} loginInfo={custom_login_info} />, el);
});

View File

@@ -1,8 +1,19 @@
import React from 'react';
import { render } from 'react-dom';
import App from './App'; import App from './App';
import api from './api';
import '@patternfly/react-core/dist/styles/base.css'; import '@patternfly/react-core/dist/styles/base.css';
import '@patternfly/patternfly-next/patternfly.css'; import '@patternfly/patternfly-next/patternfly.css';
import './app.scss'; import './app.scss';
export default App; const el = document.getElementById('app');
api.getRoot()
.then(({ data }) => {
const { custom_logo, custom_login_info } = data;
render(<App logo={custom_logo} loginInfo={custom_login_info} />, el);
});

View File

@@ -26,7 +26,7 @@ class LoginPage extends Component {
this.state = { this.state = {
username: '', username: '',
password: '', password: '',
redirect: false, error: '',
loading: false, loading: false,
}; };
} }
@@ -49,7 +49,6 @@ class LoginPage extends Component {
this.safeSetState({ loading: true }); this.safeSetState({ loading: true });
api.login(username, password) api.login(username, password)
.then(() => this.safeSetState({ redirect: true }))
.catch(error => { .catch(error => {
if (error.response.status === 401) { if (error.response.status === 401) {
this.safeSetState({ error: LOGIN_ERROR_MESSAGE }); this.safeSetState({ error: LOGIN_ERROR_MESSAGE });
@@ -61,10 +60,10 @@ class LoginPage extends Component {
} }
render () { render () {
const { username, password, redirect, loading, error } = this.state; const { username, password, loading, error } = this.state;
const { logo, loginInfo } = this.props; const { logo, loginInfo } = this.props;
if (redirect) { if (api.isAuthenticated()) {
return (<Redirect to="/" />); return (<Redirect to="/" />);
} }