diff --git a/packages/component-wizard/src/components/AuthorList/AuthorList.js b/packages/component-wizard/src/components/AuthorList/AuthorList.js index a542d73b0e469206ecfe437c02ec09d36499d41f..a3f1c3f1c7c033cb7a3e677183939f31c4122144 100644 --- a/packages/component-wizard/src/components/AuthorList/AuthorList.js +++ b/packages/component-wizard/src/components/AuthorList/AuthorList.js @@ -10,6 +10,7 @@ import { withState, } from 'recompose' import { change } from 'redux-form' +import { SortableList } from 'pubsweet-components-faraday/src/components' import { addAuthor, @@ -18,8 +19,6 @@ import { moveAuthors, } from '../../redux/authors' -import SortableList from '../SortableList' - import Author from './Author' import StaticList from './StaticList' import AuthorAdder from './AuthorAdder' diff --git a/packages/component-wizard/src/components/AuthorList/StaticList.js b/packages/component-wizard/src/components/AuthorList/StaticList.js index a0da937295e6a75cb60b8b0a28f4c44e42ff2b8c..ba44a4c67595fbd2fd5f58a6a7212553594cf2d8 100644 --- a/packages/component-wizard/src/components/AuthorList/StaticList.js +++ b/packages/component-wizard/src/components/AuthorList/StaticList.js @@ -10,6 +10,7 @@ export default ({ editComponent, setAuthorEdit, parseAuthorType, + ...rest }) => ( <div> {authors.map( @@ -32,6 +33,7 @@ export default ({ countryParser={countryParser} parseAuthorType={parseAuthorType} removeAuthor={removeAuthor} + {...rest} /> ), )} diff --git a/packages/component-wizard/src/components/SortableList.js b/packages/component-wizard/src/components/SortableList.js deleted file mode 100644 index b52ad3f7a4b8d487771521c18ba68e4a9c000a70..0000000000000000000000000000000000000000 --- a/packages/component-wizard/src/components/SortableList.js +++ /dev/null @@ -1,128 +0,0 @@ -import React from 'react' -import { compose } from 'recompose' -import { findDOMNode } from 'react-dom' -import { DragSource, DropTarget } from 'react-dnd' - -const itemSource = { - beginDrag(props) { - return { index: props.index } - }, -} - -const itemTarget = { - hover({ moveItem, index }, monitor, component) { - const dragIndex = monitor.getItem().index - const hoverIndex = index - - // Don't replace items with themselves - if (dragIndex === hoverIndex) { - return - } - - const hoverBoundingRect = findDOMNode(component).getBoundingClientRect() // eslint-disable-line - const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2 - const clientOffset = monitor.getClientOffset() - const hoverClientY = clientOffset.y - hoverBoundingRect.top - - if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) { - return - } - - if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) { - return - } - if (typeof moveItem === 'function') { - moveItem(dragIndex, hoverIndex) - } - monitor.getItem().index = hoverIndex - }, - drop({ dropItem }) { - if (dropItem && typeof dropItem === 'function') dropItem() - }, -} - -const Item = ({ - connectDragPreview, - connectDragSource, - connectDropTarget, - listItem, - dragHandle, - isEditing, - ...rest -}) => - dragHandle - ? connectDragPreview( - connectDropTarget( - <div style={{ flex: 1 }}> - {React.createElement(listItem, { - ...rest, - dragHandle: connectDragSource( - <div style={{ display: 'flex' }}> - {React.createElement(dragHandle)} - </div>, - ), - })} - </div>, - ), - ) - : connectDropTarget( - connectDragSource( - <div style={{ flex: 1 }}>{React.createElement(listItem, rest)}</div>, - ), - ) - -const DecoratedItem = compose( - DropTarget('item', itemTarget, (connect, monitor) => ({ - connectDropTarget: connect.dropTarget(), - isOver: monitor.isOver(), - })), - DragSource('item', itemSource, (connect, monitor) => ({ - connectDragSource: connect.dragSource(), - connectDragPreview: connect.dragPreview(), - isDragging: monitor.isDragging(), - })), -)(Item) - -const SortableList = ({ - items, - moveItem, - listItem, - dragHandle, - editItem, - ...rest -}) => ( - <div> - {items.map((item, i) => ( - <DecoratedItem - dragHandle={dragHandle} - index={i} - isEditing={rest.editedAuthor !== -1} - key={item.name || Math.random()} - listItem={listItem} - moveItem={moveItem} - {...item} - {...rest} - /> - ))} - </div> -) - -// helper function for sortable lists -SortableList.moveItem = (items, dragIndex, hoverIndex) => { - if (dragIndex <= hoverIndex) { - return [ - ...items.slice(0, dragIndex), - items[hoverIndex], - items[dragIndex], - ...items.slice(hoverIndex + 1), - ] - } - return [ - ...items.slice(0, hoverIndex), - items[dragIndex], - items[hoverIndex], - ...items.slice(dragIndex + 1), - ] -} - -export default SortableList diff --git a/packages/component-wizard/src/components/index.js b/packages/component-wizard/src/components/index.js index 03233dc6eff398a8c4590e9ef97ab4040ab1d5e3..47b3aab9b775ead01a4636f0800b61acbac9146c 100644 --- a/packages/component-wizard/src/components/index.js +++ b/packages/component-wizard/src/components/index.js @@ -3,6 +3,5 @@ export { default as Progress } from './Progress' export { default as Dropdown } from './Dropdown' export { default as WizardPage } from './WizardPage' export { default as WizardStep } from './WizardStep' -export { default as SortableList } from './SortableList' export { default as WizardFormStep } from './WizardFormStep' export { default as AutosaveIndicator } from './AutosaveIndicator' diff --git a/packages/xpub-faraday/app/routes.js b/packages/xpub-faraday/app/routes.js index bc297cdbfffcd7fdc6a6416dfd391f4ff6af6ced..0679a1da98fc652db1f106c288c3ef8a15466ea6 100644 --- a/packages/xpub-faraday/app/routes.js +++ b/packages/xpub-faraday/app/routes.js @@ -1,7 +1,5 @@ import React from 'react' import { Route } from 'react-router-dom' -import { DragDropContext } from 'react-dnd' -import HTML5Backend from 'react-dnd-html5-backend' import App from 'pubsweet-component-xpub-app/src/components' @@ -36,4 +34,4 @@ const Routes = () => ( </App> ) -export default DragDropContext(HTML5Backend)(Routes) +export default Routes diff --git a/packages/xpub-faraday/config/components.json b/packages/xpub-faraday/config/components.json index d2f94630a129aac037beb019e7f000121cd6c0c1..0868d8175764a5d690eb3d27b3afa188bb22f895 100644 --- a/packages/xpub-faraday/config/components.json +++ b/packages/xpub-faraday/config/components.json @@ -4,5 +4,6 @@ "pubsweet-component-xpub-dashboard", "xpub-faraday-server", "pubsweet-component-ink-backend", - "pubsweet-component-wizard" + "pubsweet-component-wizard", + "pubsweet-components-faraday" ] diff --git a/packages/xpub-faraday/webpack/babel-includes.js b/packages/xpub-faraday/webpack/babel-includes.js index cf4c70690af26d8fec6abcbeb6b3ce54b5be6963..3a619ed559a51e70edc6d8501083bb4353fc7790 100644 --- a/packages/xpub-faraday/webpack/babel-includes.js +++ b/packages/xpub-faraday/webpack/babel-includes.js @@ -8,6 +8,7 @@ module.exports = [ /pubsweet-[^/]+\/src/, /xpub-[^/]+\/src/, /component-[^/]+\/src/, + /components-[^/]+\/src/, /wax-[^/]+\/src/, /@pubsweet\/[^/]+\/src/, ]