import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import MediaQuery from 'react-responsive'; import { gettext, storages } from '../../utils/constants'; import MylibRepoListItem from './mylib-repo-list-item'; const propTypes = { sortBy: PropTypes.string.isRequired, sortOrder: PropTypes.string.isRequired, repoList: PropTypes.array.isRequired, sortRepoList: PropTypes.func.isRequired, onRenameRepo: PropTypes.func.isRequired, onDeleteRepo: PropTypes.func.isRequired, onTransferRepo: PropTypes.func.isRequired, onRepoClick: PropTypes.func.isRequired, }; class MylibRepoListView extends React.Component { constructor(props) { super(props); this.state = { isItemFreezed: false, }; } onFreezedItem = () => { this.setState({isItemFreezed: true}); } onUnfreezedItem = () => { this.setState({isItemFreezed: false}); } sortByName = (e) => { e.preventDefault(); const sortBy = 'name'; const sortOrder = this.props.sortOrder == 'asc' ? 'desc' : 'asc'; this.props.sortRepoList(sortBy, sortOrder); } sortByTime = (e) => { e.preventDefault(); const sortBy = 'time'; const sortOrder = this.props.sortOrder == 'asc' ? 'desc' : 'asc'; this.props.sortRepoList(sortBy, sortOrder); } sortBySize = (e) => { e.preventDefault(); const sortBy = 'size'; const sortOrder = this.props.sortOrder == 'asc' ? 'desc' : 'asc'; this.props.sortRepoList(sortBy, sortOrder); } renderRepoListView = () => { return ( {this.props.repoList.map(item => { return ( ); })} ); } renderPCUI = () => { const showStorageBackend = storages.length > 0; const sortIcon = this.props.sortOrder === 'asc' ? : ; return ( {showStorageBackend ? : null} {this.renderRepoListView()}
{gettext('Library Type')} {gettext('Name')} {this.props.sortBy === 'name' && sortIcon} {gettext('Actions')} {gettext('Size')} {this.props.sortBy === 'size' && sortIcon}{gettext('Storage backend')}{gettext('Last Update')} {this.props.sortBy === 'time' && sortIcon}
); } renderMobileUI = () => { return ( {this.renderRepoListView()}
{gettext('Library Type')} {gettext('Actions')}
); } render() { return ( {this.renderPCUI()} {this.renderMobileUI()} ); } } MylibRepoListView.propTypes = propTypes; export default MylibRepoListView;