44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
import { Component } from "react";
|
|
import PropTypes from "prop-types";
|
|
import OHIF from 'ohif-core';
|
|
|
|
class StudyLoadingMonitor extends Component {
|
|
static propTypes = {
|
|
studies: PropTypes.array.isRequired,
|
|
setStudyLoadingProgress: PropTypes.func.isRequired,
|
|
clearStudyLoadingProgress: PropTypes.func.isRequired,
|
|
};
|
|
|
|
componentDidMount() {
|
|
// TODO: This is pretty ugly. The thing is that the StudyLoadingListener
|
|
// needs to update the Redux store, but shouldn't know that it exists.
|
|
// I am therefore passing in some functions to update the store instead,
|
|
// but this should definitely be cleaned up somehow.
|
|
const options = {
|
|
_setProgressData: (progressId, progressData) => {
|
|
this.props.setStudyLoadingProgress(progressId, progressData)
|
|
},
|
|
_clearProgressById: (progressId) => {
|
|
this.props.clearStudyLoadingProgress(progressId)
|
|
}
|
|
}
|
|
|
|
const { StudyLoadingListener } = OHIF.classes;
|
|
this.studyLoadingListener = StudyLoadingListener.getInstance(options);
|
|
this.studyLoadingListener.clear();
|
|
this.studyLoadingListener.addStudies(this.props.studies);
|
|
}
|
|
|
|
render() {
|
|
return null;
|
|
}
|
|
|
|
componentWillUnmount() {
|
|
// Destroy stack loading listeners when we close the viewer
|
|
this.studyLoadingListener.clear();
|
|
}
|
|
}
|
|
|
|
|
|
export default StudyLoadingMonitor;
|