/**
 * React component for {{spinalcase name}} view.
 * @class {{pascalcase name}}View
 *
 * Generated by {{generator}} on {{today}},
 * from a template provided by {{ pkg.name }}.
 *
 * @see https://facebook.github.io/react/
 */

'use strict'

import React, {PropTypes as types} from 'react'
import classnames from 'classnames'
import {ApView, ApViewHeader, ApViewBody} from 'apeman-react-basic'
import ViewMixinGroup from '../../../mixins/groups/view_mixin_group'
import defineDebug from 'debug'

import fragments from '{{base}}/fragments'
import mixins from '{{base}}/../mixins'
import services from '{{base}}/../services'

const debug = defineDebug('project:react:{{spinalcase name}}')

/** @lends {{pascalcase name}}View */
let {{pascalcase name}}View = React.createClass({

  // --------------------
  // Specs
  // --------------------

  propTypes: {},

  mixins: [
    ...ViewMixinGroup,
  ],

  statics: {
    viewName: '{{spinalcase name}}'
  },

  getInitialState () {
    return {}
  },

  getDefaultProps () {
    return {}
  },

  render () {
    const s = this
    let {state, props} = s

    let l = s.getLocale()

    return (
      <ApView className={ classnames('{{spinalcase name}}-view', props.className) }>
        <ApViewHeader leftText={ null }
                leftIcon={ ApViewHeader.popIcon(props.viewWay) }
                onLeftTap={ s.popThisViewFromCurrentStack }
                titleText={ null }
                titleIcon={ null }
                rightText={ null }
                rightIcon={ null }
                onRightTap={ null }
        />
        <ApViewBody>
          This is {{spinalcase name}} view.
        </ApViewBody>
      </ApView>
    )
  },

  // --------------------
  // Lifecycle
  // --------------------

  componentWillMount () {
    const s = this
  },

  componentDidMount () {
    const s = this
  },

  componentWillReceiveProps (nextProps) {
    const s = this
  },

  shouldComponentUpdate (nextProps, nextState) {
    const s = this
    return true
  },

  componentWillUpdate (nextProps, nextState) {
    const s = this
  },

  componentDidUpdate (prevProps, prevState) {
    const s = this
  },

  componentWillUnmount () {
    const s = this
  }

  // ------------------
  // Custom
  // ------------------

  // ------------------
  // Private
  // ------------------
})

export default {{pascalcase name}}View
