import PropTypes from 'prop-types'; import React from 'react'; import InlineSVG from 'react-inlinesvg'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import * as CollectionsActions from '../../actions/collections'; import getSortedCollections from '../../selectors/collections'; // import { Link } from 'react-router'; import exitUrl from '../../../../images/exit.svg'; import { Searchbar } from '../Searchbar'; import Item from './Item'; // const reducer = () => { // switch () // case 'noItems': // return 'NoCollections'; // case // } const NoCollections = () => (

No collections

{/*

{}} >Create

*/}
); const CollectionPopover = ({ onClose, project, collections, addToCollection, getCollections, user }) => { const [searchTerm, setSearchTerm] = React.useState(''); const filteredCollections = searchTerm === '' ? collections : collections.filter(({ name }) => name.toUpperCase().includes(searchTerm.toUpperCase())); React.useEffect(() => { getCollections(user.username); }, [user]); const handleAddToCollection = (collectionId) => { addToCollection(collectionId, project.id); }; return (

Add to collection

setSearchTerm('')} />
); }; CollectionPopover.propTypes = { onClose: PropTypes.func.isRequired, getCollections: PropTypes.func.isRequired, addToCollection: PropTypes.func.isRequired, user: PropTypes.shape({ username: PropTypes.string.isRequired, }).isRequired, collections: PropTypes.arrayOf(PropTypes.shape({ name: PropTypes.string, })).isRequired, project: PropTypes.shape({ id: PropTypes.string, }).isRequired, }; function mapStateToProps(state, ownProps) { return { user: state.user, collections: getSortedCollections(state), loading: state.loading, }; } function mapDispatchToProps(dispatch) { return bindActionCreators( Object.assign({}, CollectionsActions), dispatch ); } export default connect(mapStateToProps, mapDispatchToProps)(CollectionPopover);