1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-15 16:04:01 +00:00
seahub/frontend/src/components/dialog/readme-dialog.js

61 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-01-19 08:20:40 +00:00
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import MarkdownViewer from '@seafile/seafile-editor/dist/viewer/markdown-viewer';
import Loading from '../../components/loading';
import { seafileAPI } from '../../utils/seafile-api';
import { gettext } from '../../utils/constants';
const propTypes = {
repoID: PropTypes.string.isRequired,
filePath: PropTypes.string.isRequired,
2019-01-19 09:45:28 +00:00
fileName: PropTypes.string.isRequired,
2019-01-19 08:20:40 +00:00
href: PropTypes.string,
toggleCancel: PropTypes.func.isRequired,
};
class ReadmeDialog extends React.Component {
constructor(props) {
super(props);
this.state = {
readmeContent: null,
isLoading: true,
};
}
componentDidMount() {
seafileAPI.getFileDownloadLink(this.props.repoID, this.props.filePath).then(res => {
seafileAPI.getFileContent(res.data).then(res => {
this.setState({
readmeContent: res.data,
isLoading: false,
});
});
});
}
render() {
return (
<Modal isOpen={true} className="readme-dialog" size="lg">
2019-01-19 09:45:28 +00:00
<ModalHeader>{gettext(this.props.fileName)}
2019-01-19 08:20:40 +00:00
<a className="readme-dialog-edit" href={this.props.href} target='_blank'><i className="fa fa-pencil"></i></a>
</ModalHeader>
<ModalBody>
{this.state.isLoading ?
<Loading />:
<MarkdownViewer markdownContent={this.state.readmeContent} showTOC={false}/>
}
</ModalBody>
<ModalFooter>
<Button color="secondary" onClick={this.props.toggleCancel}>{gettext('Close')}</Button>
</ModalFooter>
</Modal>
);
}
}
ReadmeDialog.propTypes = propTypes;
export default ReadmeDialog;