1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-06 09:21:54 +00:00
Files
seahub/frontend/src/components/file-chooser/repo-list-view.js

76 lines
2.1 KiB
JavaScript
Raw Normal View History

import React from 'react';
import PropTypes from 'prop-types';
import RepoListItem from './repo-list-item';
const propTypes = {
2018-12-18 17:21:01 +08:00
currentRepoInfo: PropTypes.object,
2018-12-28 14:25:25 +08:00
isShowFile: PropTypes.bool,
repo: PropTypes.object,
repoList: PropTypes.array,
selectedRepo: PropTypes.object,
initToShowChildren: PropTypes.bool.isRequired,
selectedPath: PropTypes.string,
onDirentItemClick: PropTypes.func.isRequired,
onRepoItemClick: PropTypes.func.isRequired,
2019-04-23 22:51:20 +08:00
fileSuffixes: PropTypes.array,
selectedItemInfo: PropTypes.object,
currentPath: PropTypes.string,
isBrowsing: PropTypes.bool,
browsingPath: PropTypes.string,
};
const defaultProps = {
currentRepoInfo: null,
isShowFile: false,
repo: null,
repoList: [],
selectedRepo: null,
selectedPath: '',
fileSuffixes: [],
selectedItemInfo: null,
currentPath: '',
isBrowsing: false,
browsingPath: '',
};
class RepoListView extends React.Component {
render() {
let { currentRepoInfo, currentPath, repoList } = this.props;
2018-12-18 17:21:01 +08:00
if (currentRepoInfo) {
repoList = [];
2018-12-18 17:21:01 +08:00
repoList.push(currentRepoInfo);
}
return (
<ul className="list-view-content file-chooser-item" >
{repoList.length > 0 && repoList.map((repoItem, index) => {
return (
<RepoListItem
key={index}
isCurrentRepo={currentRepoInfo ? true : false}
currentPath={currentPath}
repo={repoItem}
initToShowChildren={this.props.initToShowChildren}
selectedRepo={this.props.selectedRepo}
selectedPath={this.props.selectedPath}
onRepoItemClick={this.props.onRepoItemClick}
onDirentItemClick={this.props.onDirentItemClick}
2018-12-28 14:25:25 +08:00
isShowFile={this.props.isShowFile}
2019-04-23 22:51:20 +08:00
fileSuffixes={this.props.fileSuffixes}
selectedItemInfo={this.props.selectedItemInfo}
isBrowsing={this.props.isBrowsing}
browsingPath={this.props.browsingPath}
/>
);
})}
</ul>
);
}
}
RepoListView.propTypes = propTypes;
RepoListView.defaultProps = defaultProps;
export default RepoListView;