@wenn/onb
Version:
onb-core
75 lines (61 loc) • 1.59 kB
JavaScript
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import { reduxForm } from 'redux-form'
import { saveCamunda, sendToCamunda } from '../../redux/actions/camunda.actions'
const UserInfoHOC = Component => {
class UserInfo extends React.Component {
constructor(props) {
super(props)
}
componentDidMount() {
sendlog("view_page");
}
handleOnSend = e => {
e.preventDefault()
const {
formData: { values },
viewName,
saveCamunda,
sendToCamunda
} = this.props
sendlog('event', { event_action: 'click', ...values });
saveCamunda(values)
sendToCamunda(viewName)
}
render() {
return (
<div>
<Component {...this.props} onHandleOnSend={this.handleOnSend} />
</div>
)
}
}
UserInfo.proptTypes = {
formData: PropTypes.object.isRequired,
wording: PropTypes.object.isRequired,
saveCamunda: PropTypes.func.isRequired,
sendToCamunda: PropTypes.func.isRequired,
viewName: PropTypes.string.isRequired
}
UserInfo = reduxForm({
form: 'UserInfo',
destroyOnUnmount: false,
forceUnregisterOnUnmount: true
})(UserInfo)
const mapState = ({ settings: { wording, config }, form }, { viewName }) => ({
formData: form.UserInfo ? form.UserInfo : {},
wording: wording[viewName],
config,
viewName
})
const mapDispatch = {
saveCamunda,
sendToCamunda
}
return connect(
mapState,
mapDispatch
)(UserInfo)
}
export default UserInfoHOC