import React from 'react'; import PropTypes from 'prop-types'; import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap'; import { gettext, siteRoot } from '../../utils/constants'; import { seafileAPI } from '../../utils/seafile-api'; import moment from 'moment'; import { Utils } from '../../utils/utils'; import Review from '../../models/review'; const propTypes = { repoID: PropTypes.string.isRequired, toggle: PropTypes.func.isRequired, }; class ListRepoReviewsDialog extends React.Component { constructor(props) { super(props); this.state = { reviews: [], }; } componentDidMount() { seafileAPI.listRepoReviews(this.props.repoID).then(res => { let reviews = res.data.reviews.map(item =>{ let review = new Review(item); return review; }); this.setState({ reviews: reviews }); }); } toggle = () => { this.props.toggle(); } render() { let reviews = this.state.reviews; return ( {gettext('Reviews')} {this.state.reviews.map((review) => { let href = siteRoot + 'drafts/review/' + review.id; return ( ); })}
{gettext('Name')} {gettext('Owner')} {gettext('Last Update')}
{Utils.getFileName(review.draftFilePath)} {review.creatorName} {moment(review.createdStr).fromNow()}
); } } ListRepoReviewsDialog.propTypes = propTypes; export default ListRepoReviewsDialog;