ohif-viewer/extensions/vtk/src/LoadingIndicator.js

50 lines
1.3 KiB
JavaScript
Raw Normal View History

2019-06-21 05:17:07 +02:00
import './LoadingIndicator.css';
2019-04-16 18:00:06 +02:00
import React, { PureComponent } from 'react';
2019-06-21 05:17:07 +02:00
import PropTypes from 'prop-types';
2019-04-16 18:00:06 +02:00
class LoadingIndicator extends PureComponent {
static propTypes = {
percentComplete: PropTypes.number.isRequired,
2019-06-21 05:17:07 +02:00
error: PropTypes.object,
2019-04-16 18:00:06 +02:00
};
static defaultProps = {
percentComplete: 0,
2019-06-21 05:17:07 +02:00
error: null,
2019-04-16 18:00:06 +02:00
};
render() {
let percComplete;
if (this.props.percentComplete && this.props.percentComplete !== 100) {
percComplete = `${this.props.percentComplete}%`;
}
return (
<React.Fragment>
{this.props.error ? (
<div className="imageViewerErrorLoadingIndicator loadingIndicator">
<div className="indicatorContents">
<h4>Error Loading Image</h4>
<p className="description">An error has occurred.</p>
<p className="details">{this.props.error.message}</p>
</div>
</div>
) : (
<div className="imageViewerLoadingIndicator loadingIndicator">
<div className="indicatorContents">
<p>
Loading... <i className="fa fa-spin fa-circle-o-notch fa-fw" />{' '}
{percComplete}
</p>
</div>
</div>
)}
</React.Fragment>
);
}
}
export default LoadingIndicator;