From f206fa58068e258c9a2280f044b3d7d0cf3e26c0 Mon Sep 17 00:00:00 2001 From: Alexandru Munteanu <alexandru.munteanu@thinslices.com> Date: Tue, 20 Feb 2018 13:32:15 +0200 Subject: [PATCH] remove unused code and use pubsweet-modal for dashboard --- .../component-modal/src/components/Modal.js | 5 +- packages/components-faraday/package.json | 1 - .../src/components/Dashboard/AbstractModal.js | 65 ++++--------------- .../src/components/Dashboard/Dashboard.js | 44 +++---------- .../src/components/Dashboard/DashboardCard.js | 12 +--- .../components/Dashboard/DashboardItems.js | 8 ++- .../src/components/Dashboard/DashboardPage.js | 17 +---- 7 files changed, 36 insertions(+), 116 deletions(-) diff --git a/packages/component-modal/src/components/Modal.js b/packages/component-modal/src/components/Modal.js index 55ff87b60..09987d71b 100644 --- a/packages/component-modal/src/components/Modal.js +++ b/packages/component-modal/src/components/Modal.js @@ -16,7 +16,10 @@ class Modal extends React.Component { render() { const { component: Component, overlayColor, ...rest } = this.props return ReactDOM.createPortal( - <ModalRoot overlayColor={overlayColor}> + <ModalRoot + onClick={rest.dismissable ? rest.hideModal : null} + overlayColor={overlayColor} + > <Component {...rest} /> </ModalRoot>, modalRoot, diff --git a/packages/components-faraday/package.json b/packages/components-faraday/package.json index 1ecc99d92..048916978 100644 --- a/packages/components-faraday/package.json +++ b/packages/components-faraday/package.json @@ -12,7 +12,6 @@ "react-dnd": "^2.5.4", "react-dnd-html5-backend": "^2.5.4", "react-dom": "^15.6.1", - "react-modal": "^3.2.1", "react-router-dom": "^4.2.2", "recompose": "^0.26.0", "redux": "^3.6.0", diff --git a/packages/components-faraday/src/components/Dashboard/AbstractModal.js b/packages/components-faraday/src/components/Dashboard/AbstractModal.js index b2e02235a..108c02b4e 100644 --- a/packages/components-faraday/src/components/Dashboard/AbstractModal.js +++ b/packages/components-faraday/src/components/Dashboard/AbstractModal.js @@ -1,61 +1,18 @@ import React from 'react' import { get } from 'lodash' -import Modal from 'react-modal' import { Icon } from '@pubsweet/ui' import styled from 'styled-components' -const customStyles = { - overlay: { - position: 'fixed', - top: 0, - left: 0, - right: 0, - bottom: 0, - backgroundColor: 'rgba(102, 112, 128, 0.8)', - }, - content: { - top: '50%', - left: '50%', - right: 'auto', - bottom: 'auto', - marginRight: '-50%', - transform: 'translate(-50%, -50%)', - width: 600, - maxHeight: 500, - padding: 0, - overflowY: 'auto', - opacity: 1, - backgroundColor: 'transparent', - border: 'none', - borderRadius: 0, - }, -} - -const AbstractModal = ({ abstractModal, onClose }) => { - const isOpen = !!abstractModal - return ( - <Modal - ariaHideApp={false} - isOpen={isOpen} - onRequestClose={onClose} - shouldCloseOnOverlayClick - style={customStyles} - > - <Root> - <CloseIcon onClick={onClose}> - <Icon color="#667080">x</Icon> - </CloseIcon> - <Title - dangerouslySetInnerHTML={{ __html: get(abstractModal, 'title') }} - /> - <Subtitle>Abstract</Subtitle> - <Content - dangerouslySetInnerHTML={{ __html: get(abstractModal, 'abstract') }} - /> - </Root> - </Modal> - ) -} +const AbstractModal = ({ metadata, hideModal }) => ( + <Root> + <CloseIcon onClick={hideModal}> + <Icon color="#667080">x</Icon> + </CloseIcon> + <Title dangerouslySetInnerHTML={{ __html: get(metadata, 'title') }} /> + <Subtitle>Abstract</Subtitle> + <Content dangerouslySetInnerHTML={{ __html: get(metadata, 'abstract') }} /> + </Root> +) export default AbstractModal @@ -65,6 +22,8 @@ const Root = styled.div` padding: 50px 32px 32px 32px; border: 1px solid #667080; position: relative; + width: 600px; + max-height: 500px; ` const Title = styled.div` diff --git a/packages/components-faraday/src/components/Dashboard/Dashboard.js b/packages/components-faraday/src/components/Dashboard/Dashboard.js index 3b8b50aa7..fbf0cdcb4 100644 --- a/packages/components-faraday/src/components/Dashboard/Dashboard.js +++ b/packages/components-faraday/src/components/Dashboard/Dashboard.js @@ -1,7 +1,6 @@ import React from 'react' import { get } from 'lodash' import { Button } from '@pubsweet/ui' -import styled from 'styled-components' import { compose, withHandlers } from 'recompose' import { withModal } from 'pubsweet-component-modal/src/components' @@ -23,9 +22,7 @@ const Dashboard = ({ changeFilterValue, filterValues, filterItems, - abstractModal, - setModal, - showModal, + showAbstractModal, ...rest }) => ( <div className={classes.root}> @@ -35,17 +32,6 @@ const Dashboard = ({ <Button onClick={createDraftSubmission} primary> New </Button> - <Button - onClick={() => - showModal({ - onConfirm: () => alert('confirm'), - costel: true, - }) - } - primary - > - Show modal - </Button> </div> </div> <DashboardFilters @@ -58,34 +44,22 @@ const Dashboard = ({ deleteProject={deleteProject} list={getItems()} listView={listView} + showAbstractModal={showAbstractModal} /> - <AbstractModal abstractModal={abstractModal} onClose={setModal()} /> </div> ) -const ModalRoot = styled.div` - width: 300px; - height: 400px; - background-color: gray; -` - -const ModalComponent = ({ hideModal, dismissable, onConfirm, costel }) => ( - <ModalRoot onClick={dismissable ? hideModal : null}> - This is our custom modal component. - <div> - <button onClick={onConfirm}>Yes</button> - <button onClick={hideModal}>Hide modal</button> - <span>{costel ? 'e costel' : 'nu e'}</span> - </div> - </ModalRoot> -) - export default compose( withModal({ - modalComponent: ModalComponent, - overlayColor: 'rgba(255, 0,0,0.8)', + modalComponent: AbstractModal, }), withHandlers({ + showAbstractModal: ({ showModal }) => metadata => () => { + showModal({ + metadata, + dismissable: true, + }) + }, getItems: ({ filters, sortOrder, diff --git a/packages/components-faraday/src/components/Dashboard/DashboardCard.js b/packages/components-faraday/src/components/Dashboard/DashboardCard.js index 1ea3969bc..085967228 100644 --- a/packages/components-faraday/src/components/Dashboard/DashboardCard.js +++ b/packages/components-faraday/src/components/Dashboard/DashboardCard.js @@ -1,10 +1,8 @@ import React from 'react' -import PropTypes from 'prop-types' import classnames from 'classnames' import { get, isEmpty } from 'lodash' import styled from 'styled-components' import { Button, Icon } from '@pubsweet/ui' -import { compose, getContext } from 'recompose' import { parseVersion, getFilesURL, downloadAll } from './utils' import classes from './Dashboard.local.scss' @@ -15,7 +13,7 @@ const DashboardCard = ({ listView, project, version, - setModal, + showAbstractModal, }) => { const { submitted, author, title, type, version: vers } = parseVersion( version, @@ -75,7 +73,7 @@ const DashboardCard = ({ <div className={classes.column2}> <div>{author}</div> {abstract && ( - <ViewAbstractContainer onClick={setModal(metadata)}> + <ViewAbstractContainer onClick={showAbstractModal(metadata)}> <Icon color="#667080" size={18}> eye </Icon> @@ -131,8 +129,4 @@ const ViewAbstractContainer = styled.div` } ` -export default compose( - getContext({ - setModal: PropTypes.func, - }), -)(DashboardCard) +export default DashboardCard diff --git a/packages/components-faraday/src/components/Dashboard/DashboardItems.js b/packages/components-faraday/src/components/Dashboard/DashboardItems.js index a73f2346c..fa1703398 100644 --- a/packages/components-faraday/src/components/Dashboard/DashboardItems.js +++ b/packages/components-faraday/src/components/Dashboard/DashboardItems.js @@ -6,7 +6,12 @@ import classes from './Dashboard.local.scss' const DashboardItem = withVersion(Item) -const DashboardItems = ({ list, listView = true, deleteProject }) => ( +const DashboardItems = ({ + list, + listView = true, + deleteProject, + showAbstractModal, +}) => ( <div> {!list.length && ( <div className={classes.empty}> @@ -22,6 +27,7 @@ const DashboardItems = ({ list, listView = true, deleteProject }) => ( key={p.id} listView={listView} project={p} + showAbstractModal={showAbstractModal} /> ))} </div> diff --git a/packages/components-faraday/src/components/Dashboard/DashboardPage.js b/packages/components-faraday/src/components/Dashboard/DashboardPage.js index 0e5c23cc6..4154a7b1b 100644 --- a/packages/components-faraday/src/components/Dashboard/DashboardPage.js +++ b/packages/components-faraday/src/components/Dashboard/DashboardPage.js @@ -1,10 +1,9 @@ import { get } from 'lodash' -import PropTypes from 'prop-types' 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, withContext } from 'recompose' +import { compose, withState, withHandlers } from 'recompose' import { newestFirst, selectCurrentUser } from 'xpub-selectors' import { createDraftSubmission } from 'pubsweet-component-wizard/src/redux/conversion' @@ -19,12 +18,8 @@ export default compose( actions.getUsers(), ]), withState('listView', 'changeView', true), - withState('abstractModal', 'setAbstractModal', null), withHandlers({ changeViewMode: ({ changeView }) => () => changeView(listView => !listView), - setModal: ({ setAbstractModal }) => (metadata = null) => () => { - setAbstractModal(metadata) - }, }), connect( state => { @@ -91,14 +86,4 @@ export default compose( }, }, }), - withContext( - { - abstractModal: PropTypes.object, - setModal: PropTypes.func, - }, - ({ abstractModal, setModal }) => ({ - abstractModal, - setModal, - }), - ), )(Dashboard) -- GitLab