LearnersGuild/echo

View on GitHub
src/common/containers/InviteCodeForm/index.jsx

Summary

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

import InviteCodeForm from 'src/common/components/InviteCodeForm'
import {inviteCodeSchema, asyncValidate} from 'src/common/validations'

const FORM_NAME = 'inviteCode'

function transformValidationInput(values) {
  return Object.assign({}, values, {roles: values.roles.split(/\W+/)})
}

function mapStateToProps(state, props) {
  return {
    initialValues: {chapterId: props.chapterId, roles: 'learner'},
    isActive: props.isActive,
    onSave: props.onSave,
    onCancel: props.onCancel,
  }
}

const formOptions = {
  form: FORM_NAME,
  asyncBlurFields: ['code', 'description', 'roles'],
  asyncValidate: asyncValidate(inviteCodeSchema, {
    abortEarly: false,
    transform: transformValidationInput,
  }),
}

export default connect(mapStateToProps)(reduxForm(formOptions)(InviteCodeForm))