just-paja/improtresk-web

View on GitHub
src/orders/containers/FoodForm.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import { reduxForm } from 'redux-form'
import { connect } from 'react-redux'

import { foodChange, requireOrderResources } from '../actions'
import {
  getOrderedMeals,
  getOrderFoodFormDefaults,
  getOrderFormPrice,
  getOrderFormProgress
} from '../selectors'
import { getAccomodationList } from '../../accomodation/selectors'
import { getWorkshopList } from '../../workshops/selectors'
import { yearActive } from '../../years/selectors'

import FoodForm from '../components/FoodForm'
import mapProgress from '../../containers/mapProgress'

const validate = (values) => {
  const errors = {}
  if (!values.accomodation) {
    errors.accomodation = 'forms.fieldRequired'
  }
  return errors
}

const mapStateToProps = state => ({
  accomodation: getAccomodationList(state),
  initialValues: getOrderFoodFormDefaults(state),
  meals: getOrderedMeals(state),
  price: getOrderFormPrice(state),
  workshops: getWorkshopList(state),
  year: yearActive(state)
})

const mapDispatchToProps = {
  onSubmit: foodChange
}

const formContainer = reduxForm({
  form: foodChange.form,
  validate
})(FoodForm)

formContainer.displayName = 'FoodForm'

const container = mapProgress(connect(mapStateToProps, mapDispatchToProps)(formContainer), {
  progressSelector: getOrderFormProgress,
  onResourceChange: requireOrderResources
})

export default container