diff --git a/src/features/user-admin/DefaultPage.js b/src/features/user-admin/DefaultPage.js
deleted file mode 100644
index cdfb83c..0000000
--- a/src/features/user-admin/DefaultPage.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import React, { Component } from 'react';
-import PropTypes from 'prop-types';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-import * as actions from './redux/actions';
-
-export class DefaultPage extends Component {
- static propTypes = {
- userAdmin: PropTypes.object.isRequired,
- actions: PropTypes.object.isRequired,
- };
-
- render() {
- return (
-
- Page Content: user-admin/DefaultPage
-
- );
- }
-}
-
-/* istanbul ignore next */
-function mapStateToProps(state) {
- return {
- userAdmin: state.userAdmin,
- };
-}
-
-/* istanbul ignore next */
-function mapDispatchToProps(dispatch) {
- return {
- actions: bindActionCreators({ ...actions }, dispatch)
- };
-}
-
-export default connect(
- mapStateToProps,
- mapDispatchToProps
-)(DefaultPage);
diff --git a/src/features/user-admin/DefaultPage.scss b/src/features/user-admin/DefaultPage.scss
deleted file mode 100644
index 8bcdafb..0000000
--- a/src/features/user-admin/DefaultPage.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-@import '../../styles/mixins';
-
-.user-admin-default-page {
-
-}
diff --git a/src/features/user-admin/List.js b/src/features/user-admin/List.js
new file mode 100644
index 0000000..0ca0f14
--- /dev/null
+++ b/src/features/user-admin/List.js
@@ -0,0 +1,69 @@
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+import { bindActionCreators } from 'redux';
+import { connect } from 'react-redux';
+import { Redirect } from 'react-router-dom'
+import { Table, TableBody, TableCell, TableHead, TableRow } from '@material-ui/core';
+import * as actions from './redux/actions';
+
+export class List extends Component {
+ static propTypes = {
+ mtx: PropTypes.object.isRequired,
+ userAdmin: PropTypes.object.isRequired,
+ actions: PropTypes.object.isRequired,
+ };
+
+ componentDidMount() {
+ const { fetchUsers } = this.props.actions;
+ fetchUsers();
+ }
+
+ render() {
+ const { mtx } = this.props;
+ const { userList, fetchUsersPending } = this.props.userAdmin;
+ return (
+
+ {(!mtx || !mtx.clientRunning) &&
}
+ {fetchUsersPending &&

}
+
+
+
+ Username
+ Guest
+ Admin
+
+
+
+ {userList.map(item => (
+
+ {item.name}
+ {item.is_guest ? 'X' : ''}
+ {item.admin ? 'X' : ''}
+
+ ))}
+
+
+
+ );
+ }
+}
+
+/* istanbul ignore next */
+function mapStateToProps(state) {
+ return {
+ mtx: state.common.mtx,
+ userAdmin: state.userAdmin,
+ };
+}
+
+/* istanbul ignore next */
+function mapDispatchToProps(dispatch) {
+ return {
+ actions: bindActionCreators({ ...actions }, dispatch),
+ };
+}
+
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(List);
diff --git a/src/features/user-admin/List.scss b/src/features/user-admin/List.scss
new file mode 100644
index 0000000..de1e105
--- /dev/null
+++ b/src/features/user-admin/List.scss
@@ -0,0 +1,9 @@
+@import '../../styles/mixins';
+
+.user-admin-list {
+ th {
+ background-color: #EEE;
+ font-size: 1rem;
+ font-weight: bold;
+ }
+}
diff --git a/src/features/user-admin/index.js b/src/features/user-admin/index.js
index 33522c8..2d01c86 100644
--- a/src/features/user-admin/index.js
+++ b/src/features/user-admin/index.js
@@ -1 +1 @@
-export { default as DefaultPage } from './DefaultPage';
+export { default as List } from './List';
diff --git a/src/features/user-admin/route.js b/src/features/user-admin/route.js
index 6ed4834..14990d6 100644
--- a/src/features/user-admin/route.js
+++ b/src/features/user-admin/route.js
@@ -2,7 +2,7 @@
// Learn more from: http://rekit.js.org/docs/routing.html
import {
- DefaultPage,
+ List,
} from './';
import { Layout } from '../common';
@@ -11,6 +11,6 @@ export default {
name: 'User admin',
component: Layout,
childRoutes: [
- { path: 'default-page', name: 'Default page', component: DefaultPage, isIndex: true },
+ { path: 'list', name: 'List', component: List, isIndex: true },
],
};
diff --git a/src/features/user-admin/style.scss b/src/features/user-admin/style.scss
index 743e0a3..9c6d373 100644
--- a/src/features/user-admin/style.scss
+++ b/src/features/user-admin/style.scss
@@ -1,2 +1,2 @@
@import '../../styles/mixins';
-@import './DefaultPage';
+@import './List';
diff --git a/tests/features/user-admin/DefaultPage.test.js b/tests/features/user-admin/List.test.js
similarity index 55%
rename from tests/features/user-admin/DefaultPage.test.js
rename to tests/features/user-admin/List.test.js
index 1bd50f7..9ceb206 100644
--- a/tests/features/user-admin/DefaultPage.test.js
+++ b/tests/features/user-admin/List.test.js
@@ -1,19 +1,19 @@
import React from 'react';
import { shallow } from 'enzyme';
-import { DefaultPage } from '../../../src/features/user-admin/DefaultPage';
+import { List } from '../../../src/features/user-admin/List';
-describe('user-admin/DefaultPage', () => {
+describe('user-admin/List', () => {
it('renders node with correct class name', () => {
const props = {
userAdmin: {},
actions: {},
};
const renderedComponent = shallow(
-
+
);
expect(
- renderedComponent.find('.user-admin-default-page').length
+ renderedComponent.find('.user-admin-list').length
).toBe(1);
});
});