Skip to content
Snippets Groups Projects
Commit 7964a90a authored by Sebastian's avatar Sebastian
Browse files

Merge branch 'faraday-master' of gitlab.coko.foundation:xpub/xpub into faraday-master

parents a39b8728 20530de7
No related branches found
No related tags found
No related merge requests found
import React from 'react'
import { Icon } from '@pubsweet/ui'
import styled from 'styled-components'
import { withRouter } from 'react-router-dom'
const AdminDashboard = ({ history }) => (
<Root>
......@@ -29,6 +28,9 @@ const AdminDashboard = ({ history }) => (
</Root>
)
export default AdminDashboard
// #region Styled components
const Root = styled.div`
display: flex;
flex-direction: column;
......@@ -72,5 +74,4 @@ const Card = styled.div`
text-align: center;
}
`
export default withRouter(AdminDashboard)
// #endregion
import { get } from 'lodash'
import { connect } from 'react-redux'
import { actions } from 'pubsweet-client'
import { ConnectPage } from 'xpub-connect'
import { withRouter } from 'react-router-dom'
import { compose, withState, withHandlers } from 'recompose'
import Admin from './Admin'
export default compose(
ConnectPage(() => [actions.getUsers()]),
withRouter,
connect(state => ({ currentUsers: get(state, 'users.users') })),
withState('users', 'setUsers', props =>
props.currentUsers.map(u => ({ ...u, selected: false })),
),
withState('itemsPerPage', 'setItemsPerPage', 50),
withState('page', 'setPage', 0),
withHandlers({
incrementPage: ({ setPage }) => () => {
setPage(p => p + 1)
},
decrementPage: ({ setPage }) => () => {
setPage(p => (p > 0 ? p - 1 : p))
},
toggleUser: ({ setUsers }) => user => () => {
setUsers(prev =>
prev.map(u => (u.id === user.id ? { ...u, selected: !u.selected } : u)),
)
},
toggleAllUsers: ({ setUsers }) => () => {
setUsers(users => users.map(u => ({ ...u, selected: !u.selected })))
},
}),
)(Admin)
import React from 'react'
import { get } from 'lodash'
import { connect } from 'react-redux'
import styled from 'styled-components'
import { Icon, Menu } from '@pubsweet/ui'
import { actions } from 'pubsweet-client'
import { ConnectPage } from 'xpub-connect'
import { withRouter } from 'react-router-dom'
import { compose, withState, withHandlers } from 'recompose'
import { Pagination } from './'
......@@ -20,7 +26,7 @@ const TableRow = ({ toggleUser, selected, email, username, type }) => (
</Row>
)
const Admin = ({
const Users = ({
users,
toggleUser,
toggleAllUsers,
......@@ -98,8 +104,34 @@ const Admin = ({
</div>
)
export default Admin
export default compose(
ConnectPage(() => [actions.getUsers()]),
withRouter,
connect(state => ({ currentUsers: get(state, 'users.users') })),
withState('users', 'setUsers', props =>
props.currentUsers.map(u => ({ ...u, selected: false })),
),
withState('itemsPerPage', 'setItemsPerPage', 50),
withState('page', 'setPage', 0),
withHandlers({
incrementPage: ({ setPage }) => () => {
setPage(p => p + 1)
},
decrementPage: ({ setPage }) => () => {
setPage(p => (p > 0 ? p - 1 : p))
},
toggleUser: ({ setUsers }) => user => () => {
setUsers(prev =>
prev.map(u => (u.id === user.id ? { ...u, selected: !u.selected } : u)),
)
},
toggleAllUsers: ({ setUsers }) => () => {
setUsers(users => users.map(u => ({ ...u, selected: !u.selected })))
},
}),
)(Users)
// #region styled-components
const AddButton = styled.button`
align-items: center;
border: none;
......@@ -195,3 +227,4 @@ const Input = styled.input`
height: 20px;
width: 20px;
`
// #endregion
export { default as AdminUsers } from './AdminPage'
export { default as AdminUsers } from './AdminUsers'
export { default as Pagination } from './Pagination'
export { default as AdminDashboard } from './AdminDashboard'
......@@ -23,20 +23,12 @@ const Dashboard = ({
filterItems,
abstractModal,
setModal,
history,
...rest
}) => (
<div className={classes.root}>
<div className={classes.header}>
<div className={classes.heading}>Manuscripts</div>
<div className={classes.headerButtons}>
<Button
className={classes['admin-button']}
onClick={() => history.push('admin')}
primary
>
Admin dashboard
</Button>
<Button onClick={createDraftSubmission} primary>
New
</Button>
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment