@wenn/onb
Version:
onb-core
100 lines (87 loc) • 2.56 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { reduxForm, change } from 'redux-form';
import {
saveCamunda,
sendToCamunda
} from '../../redux/actions/camunda.actions';
import { goBack } from '../../redux/actions/pages.actions';
const ConfirmIdentityHOC = Component => {
class ConfirmIdentity extends React.Component {
componentDidMount() {
const { identityValidation } = this.props;
sendlog('view_page', { identityValidation });
}
handleOnSend = e => {
e.preventDefault();
const {
formData: { values },
viewName,
identityValidation,
saveCamunda,
sendToCamunda
} = this.props;
const fiscalId = values.identity.substr(1);
const identity = identityValidation.find(
iden => iden.fiscal_id === fiscalId
);
const data = {
fullname: `${identity.firstname} ${identity.lastname}`
};
sendlog('event', { event_action: 'click', ...values });
saveCamunda({
...data,
...identity
});
sendToCamunda(viewName);
};
onHandleBack = () => {
const { dispatch, goBack, history } = this.props;
dispatch(change('InitialInfo', 'national_id', ''));
dispatch(change('InitialInfo', 'termsyconditions', false));
dispatch(change('ConfirmIdentity', 'identity', ''));
goBack(history.push);
};
render() {
return (
<div>
<Component
{...this.props}
onHandleOnSend={this.handleOnSend}
handleBack={this.onHandleBack}
/>
</div>
);
}
}
ConfirmIdentity.propTypes = {
formData: PropTypes.object.isRequired,
wording: PropTypes.object.isRequired,
saveCamunda: PropTypes.func.isRequired,
sendToCamunda: PropTypes.func.isRequired,
viewName: PropTypes.string.isRequired
};
ConfirmIdentity = reduxForm({
form: 'ConfirmIdentity',
destroyOnUnmount: false,
forceUnregisterOnUnmount: true
})(ConfirmIdentity);
const mapState = ({ settings, form, camundaData }, { viewName }) => ({
formData: form.ConfirmIdentity ? form.ConfirmIdentity : {},
wording: settings.wording[viewName],
config: settings.config,
viewName,
identityValidation: camundaData.identity_validation || []
});
const mapDispatch = {
saveCamunda,
sendToCamunda,
goBack
};
return connect(
mapState,
mapDispatch
)(ConfirmIdentity);
};
export default ConfirmIdentityHOC;