AppFullscreenManager.jsx 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react'
  2. import { connect } from 'react-redux'
  3. import { withRouter } from 'react-router'
  4. import { Route } from 'react-router-dom'
  5. import { PAGE } from '../helper.js'
  6. import appFactory from '../appFactory.js'
  7. class AppFullscreenManager extends React.Component {
  8. constructor (props) {
  9. super(props)
  10. this.state = {
  11. AmIMounted: false
  12. }
  13. }
  14. componentDidMount = () => this.setState({AmIMounted: true})
  15. render () {
  16. const { props } = this
  17. return (
  18. <div className='AppFullScreenManager'>
  19. <div id='appFullscreenContainer' />
  20. {this.state.AmIMounted && (// we must wait for the component to be fully mounted to be sure the div#appFullscreenContainer exists in DOM
  21. <div className='emptyDiForRoute'>
  22. <Route path={PAGE.ADMIN.WORKSPACE} render={() => {
  23. props.renderAppFullscreen({slug: 'admin_workspace_user', hexcolor: '#7d4e24', type: 'workspace'}, props.user, {})
  24. return null
  25. }} />
  26. <Route path={PAGE.ADMIN.USER} render={() => {
  27. props.renderAppFullscreen({slug: 'admin_workspace_user', hexcolor: '#7d4e24', type: 'user'}, props.user, {})
  28. return null
  29. }} />
  30. </div>
  31. )}
  32. </div>
  33. )
  34. }
  35. }
  36. const mapStateToProps = ({ user }) => ({ user })
  37. export default connect(mapStateToProps)(withRouter(appFactory(AppFullscreenManager)))