From 8467d9abb80bcaf37e47f25f7aca68269a39c1b7 Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Fri, 9 Feb 2018 17:02:50 +0200
Subject: [PATCH] feat(component): wip: start admin user dashboard

---
 .../src/components/Admin/Admin.js             | 21 +++++++++++++++++++
 .../src/components/Admin/Admin.local.scss     |  6 ++++++
 .../src/components/Admin/AdminPage.js         | 15 +++++++++++++
 .../src/components/Admin/index.js             |  3 +++
 packages/xpub-faraday/app/routes.js           |  2 ++
 5 files changed, 47 insertions(+)
 create mode 100644 packages/components-faraday/src/components/Admin/Admin.js
 create mode 100644 packages/components-faraday/src/components/Admin/Admin.local.scss
 create mode 100644 packages/components-faraday/src/components/Admin/AdminPage.js
 create mode 100644 packages/components-faraday/src/components/Admin/index.js

diff --git a/packages/components-faraday/src/components/Admin/Admin.js b/packages/components-faraday/src/components/Admin/Admin.js
new file mode 100644
index 000000000..8bb2efb47
--- /dev/null
+++ b/packages/components-faraday/src/components/Admin/Admin.js
@@ -0,0 +1,21 @@
+import React from 'react'
+import PropTypes from 'prop-types'
+
+import classes from './Admin.local.scss'
+
+const Admin = ({ users }) => (
+  <div className={classes.root}>
+    <h2>Admin</h2>
+    <ul>
+      {users.map((u, i) => (
+        <li key={i}>
+          {u.username} - {u.email}
+        </li>
+      ))}
+    </ul>
+  </div>
+)
+
+Admin.propTypes = {}
+
+export default Admin
diff --git a/packages/components-faraday/src/components/Admin/Admin.local.scss b/packages/components-faraday/src/components/Admin/Admin.local.scss
new file mode 100644
index 000000000..6ea81ade4
--- /dev/null
+++ b/packages/components-faraday/src/components/Admin/Admin.local.scss
@@ -0,0 +1,6 @@
+.root {
+  display: flex;
+  flex-direction: column;
+  margin: auto;
+  max-width: 60em;
+}
diff --git a/packages/components-faraday/src/components/Admin/AdminPage.js b/packages/components-faraday/src/components/Admin/AdminPage.js
new file mode 100644
index 000000000..40a751d36
--- /dev/null
+++ b/packages/components-faraday/src/components/Admin/AdminPage.js
@@ -0,0 +1,15 @@
+import { get } from 'lodash'
+import PropTypes from 'prop-types'
+import { compose } from 'recompose'
+import { connect } from 'react-redux'
+import { actions } from 'pubsweet-client'
+import { ConnectPage } from 'xpub-connect'
+import { withRouter } from 'react-router-dom'
+
+import Admin from './Admin'
+
+export default compose(
+  ConnectPage(() => [actions.getUsers()]),
+  withRouter,
+  connect(state => ({ users: get(state, 'users.users') })),
+)(Admin)
diff --git a/packages/components-faraday/src/components/Admin/index.js b/packages/components-faraday/src/components/Admin/index.js
new file mode 100644
index 000000000..f623059ef
--- /dev/null
+++ b/packages/components-faraday/src/components/Admin/index.js
@@ -0,0 +1,3 @@
+import AdminPage from './AdminPage'
+
+export default AdminPage
diff --git a/packages/xpub-faraday/app/routes.js b/packages/xpub-faraday/app/routes.js
index 2f6b1b783..b2bba7ac7 100644
--- a/packages/xpub-faraday/app/routes.js
+++ b/packages/xpub-faraday/app/routes.js
@@ -16,6 +16,7 @@ import { Wizard } from 'pubsweet-component-wizard/src/components'
 import ManuscriptPage from 'pubsweet-component-xpub-manuscript/src/components/ManuscriptPage'
 import ConfirmationPage from 'pubsweet-components-faraday/src/components/UIComponents/ConfirmationPage'
 import NotFound from 'pubsweet-components-faraday/src/components/UIComponents/NotFound'
+import AdminPage from 'pubsweet-components-faraday/src/components/Admin'
 
 const Routes = () => (
   <App>
@@ -28,6 +29,7 @@ const Routes = () => (
         exact
         path="/confirmation-page"
       />
+      <PrivateRoute component={AdminPage} exact path="/admin" />
       <PrivateRoute component={LogoutPage} exact path="/logout" />
       <PrivateRoute
         component={Wizard}
-- 
GitLab