import PropTypes from 'prop-types'
// import {connect} from 'react-redux'
import { compose, onlyUpdateForKeys, withState } from 'recompose'
import Dungeon from '../components/Dungeon'
import DMView from '../components/DMView'
import CombatScreen from './CombatScreen'
import PartyScreen from './PartyScreen'
import { CombatContext } from '../context/CombatContext'
import EventBus from 'eventing-bus'
import LogWindow from './LogWindow'
import SaveGameButton from './SaveGameButton'

const PlayerView = ({ combatRoundIsOn, setCombatRoundIsOnTo, isOn, setIsOn }) => {
  return (
    <React.Fragment>
      <button onClick={() => EventBus.publish(`dismountScene`)}>dismount</button>

      {isOn && <DMView />}
      <SaveGameButton />

      <LogWindow />
      <CombatContext.Provider {...{ value: { combatRoundIsOn, setCombatRoundIsOnTo } }}>
        <CombatScreen />
        <PartyScreen />
        <CombatContext.Consumer>
          {combatContext => <Dungeon {...{ combatContext }} />}
        </CombatContext.Consumer>
      </CombatContext.Provider>
    </React.Fragment>
  )
}

PlayerView.propTypes = {}
const mapStateToProps = state => ({})

const enhance = compose(
  withState(`combatRoundIsOn`, `setCombatRoundIsOnTo`, false),
  withState(`isOn`, `setIsOn`, false)
  //onlyUpdateForKeys([ `` ])
  // connect(mapStateToProps, {})
)

export default enhance(PlayerView)
