import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { withRouter } from 'react-router'; import { Route, Switch } from 'react-router-dom'; import { connect } from 'react-redux'; import { ViewerbaseDragDropContext } from 'react-viewerbase'; import ViewerRouting from './routes/ViewerRouting.js'; import StudyListRouting from './studylist/StudyListRouting.js' import StandaloneRouting from './routes/StandaloneRouting.js'; import IHEInvokeImageDisplay from './routes/IHEInvokeImageDisplay.js'; import CallbackPage from './CallbackPage.js'; import './OHIFStandaloneViewer.css'; import './variables.css'; import './theme-tide.css'; const reload = () => window.location.reload(); class OHIFStandaloneViewer extends Component { static propTypes = { history: PropTypes.object.isRequired, user: PropTypes.object }; componentDidMount() { this.unlisten = this.props.history.listen((location, action) => { if (this.props.setContext) { this.props.setContext(window.location.pathname); } }); } componentWillUnmount() { this.unlisten(); } render() { const { user, userManager } = this.props; const userNotLoggedIn = userManager && (!user || user.expired); if (userNotLoggedIn) { const pathname = this.props.location.pathname; if (pathname !== '/callback') { sessionStorage.setItem('ohif-redirect-to', pathname); } return ( } /> { userManager.signinRedirect(); return null; }} /> ); } return ( Sorry, this page does not exist. } /> ); } } const mapStateToProps = state => { return { user: state.oidc.user }; }; const ConnectedOHIFStandaloneViewer = connect( mapStateToProps, null )(OHIFStandaloneViewer); export default ViewerbaseDragDropContext( withRouter(ConnectedOHIFStandaloneViewer) );