2018-11-13 08:07:09 -08:00
|
|
|
import React from 'react';
|
2018-11-13 14:51:02 -08:00
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import { withRouter, RouteComponentProps } from 'react-router';
|
2018-11-13 08:07:09 -08:00
|
|
|
import CreateFlow from 'components/CreateFlow';
|
2018-11-13 14:51:02 -08:00
|
|
|
import { initializeForm } from 'modules/create/actions';
|
|
|
|
import { AppState } from 'store/reducers';
|
2019-01-23 07:15:59 -08:00
|
|
|
import Loader from 'components/Loader';
|
2018-11-13 14:51:02 -08:00
|
|
|
|
|
|
|
interface StateProps {
|
|
|
|
form: AppState['create']['form'];
|
|
|
|
isInitializingForm: AppState['create']['isInitializingForm'];
|
|
|
|
initializeFormError: AppState['create']['initializeFormError'];
|
|
|
|
}
|
|
|
|
|
|
|
|
interface DispatchProps {
|
|
|
|
initializeForm: typeof initializeForm;
|
|
|
|
}
|
|
|
|
|
|
|
|
type Props = StateProps & DispatchProps & RouteComponentProps<{ id: string }>;
|
|
|
|
|
|
|
|
class ProposalEdit extends React.Component<Props> {
|
|
|
|
componentWillMount() {
|
|
|
|
const proposalId = parseInt(this.props.match.params.id, 10);
|
|
|
|
this.props.initializeForm(proposalId);
|
|
|
|
}
|
2018-11-13 08:07:09 -08:00
|
|
|
|
|
|
|
render() {
|
2018-11-13 14:51:02 -08:00
|
|
|
const { form, initializeFormError } = this.props;
|
|
|
|
if (form) {
|
2018-12-03 18:08:29 -08:00
|
|
|
return <CreateFlow />;
|
2018-11-13 14:51:02 -08:00
|
|
|
} else if (initializeFormError) {
|
|
|
|
return <h1>{initializeFormError}</h1>;
|
|
|
|
} else {
|
2019-01-23 07:15:59 -08:00
|
|
|
return <Loader />;
|
2018-11-13 14:51:02 -08:00
|
|
|
}
|
2018-11-13 08:07:09 -08:00
|
|
|
}
|
2018-11-13 08:07:37 -08:00
|
|
|
}
|
2018-11-13 08:07:09 -08:00
|
|
|
|
2018-11-13 14:51:02 -08:00
|
|
|
const ConnectedProposalEdit = connect<StateProps, DispatchProps, {}, AppState>(
|
|
|
|
state => ({
|
|
|
|
form: state.create.form,
|
|
|
|
isInitializingForm: state.create.isInitializingForm,
|
|
|
|
initializeFormError: state.create.initializeFormError,
|
|
|
|
}),
|
|
|
|
{ initializeForm },
|
|
|
|
)(ProposalEdit);
|
|
|
|
|
|
|
|
export default withRouter(ConnectedProposalEdit);
|