Advertisement
Guest User

Untitled

a guest
May 28th, 2017
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. const React = require('react'),
  2. {View, StyleSheet:{create}, Dimensions:{get}} = require('react-native'),
  3. PropTypes = require('prop-types'),
  4. {Switch} = require('react-router-dom'),
  5. {callAPI:{fetchPure}} = require('../utils'),
  6. {palette:{lightGreyTwo}} = require('../styles')
  7.  
  8. import {Drawer, Modal, Overlay, AppBar} from '../components'
  9.  
  10.  
  11. class Shell extends React.Component{
  12.  
  13. state={overlay:false, mobile:false, modal:false, drawer:true, properties:[], modalContent:''}
  14.  
  15. componentWillMount = () => get('window').width < 460 ? this.setState({mobile: true}): null
  16.  
  17. openOverlay = () => this.setState({overlay:true})
  18. closeOverlay = () => this.setState({overlay:false})
  19. openModal = modalContent => this.setState({modal:true, modalContent:modalContent})
  20. closeModal = () => this.setState({modal:false})
  21.  
  22.  
  23. getChildContext = () => ({
  24. mobile: this.state.mobile,
  25. overlay:this.state.overlay,
  26. openOverlay:this.openOverlay,
  27. openModal:this.openModal,
  28. closeModal: this.closeModal,
  29. })
  30.  
  31.  
  32.  
  33. render (){
  34. const {children, propertyNames} = this.props
  35. const {drawer,properties, modal, overlay, modalContent} = this.state
  36.  
  37. console.log(propertyNames)
  38.  
  39. return <View style={{minHeight:'100%', backgroundColor:lightGreyTwo}}>
  40.  
  41. <View style={drawer ? {marginLeft:270}:{}}>
  42. {localStorage.getItem('token') ? <AppBar toggleDrawer={()=> this.setState({drawer:!drawer})}/> : null}
  43. {children.map((child,i) =>React.cloneElement(child,{ key:i} ) )}
  44. </View>
  45.  
  46. {drawer ? <Drawer propertyNames={propertyNames} /> :null}
  47.  
  48. {modal
  49. ? <Modal closeModal={this.closeModal} >
  50. {modalContent}
  51. </Modal>
  52. : null
  53. }
  54.  
  55. { overlay ? <Overlay closeOverlay={this.closeOverlay} /> : null}
  56.  
  57.  
  58. </View>
  59. }
  60. }
  61.  
  62.  
  63. Shell.childContextTypes = {
  64. mobile: PropTypes.bool,
  65. overlay: PropTypes.bool,
  66. openOverlay: PropTypes.func,
  67. openModal: PropTypes.func,
  68. closeModal: PropTypes.func,
  69. }
  70.  
  71. export default Shell
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement