mirror of
https://github.com/ansible/awx.git
synced 2026-01-13 19:10:07 -03:30
Merge pull request #6668 from nixocio/ui_refactor_users_functional
Modify Users component to be function based Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
commit
2830cdfdeb
@ -1,5 +1,5 @@
|
||||
import React, { Component, Fragment } from 'react';
|
||||
import { Route, withRouter, Switch } from 'react-router-dom';
|
||||
import React, { Fragment, useState } from 'react';
|
||||
import { Route, useRouteMatch, Switch } from 'react-router-dom';
|
||||
import { withI18n } from '@lingui/react';
|
||||
import { t } from '@lingui/macro';
|
||||
|
||||
@ -10,28 +10,19 @@ import UsersList from './UserList/UserList';
|
||||
import UserAdd from './UserAdd/UserAdd';
|
||||
import User from './User';
|
||||
|
||||
class Users extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
const { i18n } = props;
|
||||
|
||||
this.state = {
|
||||
breadcrumbConfig: {
|
||||
'/users': i18n._(t`Users`),
|
||||
'/users/add': i18n._(t`Create New User`),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
setBreadcrumbConfig = user => {
|
||||
const { i18n } = this.props;
|
||||
function Users({ i18n }) {
|
||||
const [breadcrumbConfig, setBreadcrumbConfig] = useState({
|
||||
'/users': i18n._(t`Users`),
|
||||
'/users/add': i18n._(t`Create New User`),
|
||||
});
|
||||
const match = useRouteMatch();
|
||||
|
||||
const addUserBreadcrumb = user => {
|
||||
if (!user) {
|
||||
return;
|
||||
}
|
||||
|
||||
const breadcrumbConfig = {
|
||||
setBreadcrumbConfig({
|
||||
'/users': i18n._(t`Users`),
|
||||
'/users/add': i18n._(t`Create New User`),
|
||||
[`/users/${user.id}`]: `${user.username}`,
|
||||
@ -41,42 +32,30 @@ class Users extends Component {
|
||||
[`/users/${user.id}/teams`]: i18n._(t`Teams`),
|
||||
[`/users/${user.id}/organizations`]: i18n._(t`Organizations`),
|
||||
[`/users/${user.id}/tokens`]: i18n._(t`Tokens`),
|
||||
};
|
||||
|
||||
this.setState({ breadcrumbConfig });
|
||||
});
|
||||
};
|
||||
|
||||
render() {
|
||||
const { match, history, location } = this.props;
|
||||
const { breadcrumbConfig } = this.state;
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
<Breadcrumbs breadcrumbConfig={breadcrumbConfig} />
|
||||
<Switch>
|
||||
<Route path={`${match.path}/add`}>
|
||||
<UserAdd />
|
||||
</Route>
|
||||
<Route path={`${match.path}/:id`}>
|
||||
<Config>
|
||||
{({ me }) => (
|
||||
<User
|
||||
history={history}
|
||||
location={location}
|
||||
setBreadcrumb={this.setBreadcrumbConfig}
|
||||
me={me || {}}
|
||||
/>
|
||||
)}
|
||||
</Config>
|
||||
</Route>
|
||||
<Route path={`${match.path}`}>
|
||||
<UsersList />
|
||||
</Route>
|
||||
</Switch>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<Fragment>
|
||||
<Breadcrumbs breadcrumbConfig={breadcrumbConfig} />
|
||||
<Switch>
|
||||
<Route path={`${match.path}/add`}>
|
||||
<UserAdd />
|
||||
</Route>
|
||||
<Route path={`${match.path}/:id`}>
|
||||
<Config>
|
||||
{({ me }) => (
|
||||
<User setBreadcrumb={addUserBreadcrumb} me={me || {}} />
|
||||
)}
|
||||
</Config>
|
||||
</Route>
|
||||
<Route path={`${match.path}`}>
|
||||
<UsersList />
|
||||
</Route>
|
||||
</Switch>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
|
||||
export { Users as _Users };
|
||||
export default withI18n()(withRouter(Users));
|
||||
export default withI18n()(Users);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user