import React, {Component} from 'react' import './CDD.css' import {reduxForm, formValueSelector} from 'redux-form' import {connect} from 'react-redux' import './conversation/conversation.css' import {START_CONVERSATION} from '../actions' import Aide from './Aide' import PageTypeIcon from './PageTypeIcon' import simulateurs from '../../règles/simulateurs.yaml' import R from 'ramda' import {Redirect, Link, withRouter} from 'react-router-dom' import {createMarkdownDiv} from '../engine/marked' import './Simulateur.css' import classNames from 'classnames' let situationSelector = formValueSelector('conversation') @withRouter @reduxForm({form: 'conversation', destroyOnUnmount: false}) @connect( state => ({ situation: variableName => situationSelector(state, variableName), foldedSteps: state.foldedSteps, unfoldedSteps: state.unfoldedSteps, themeColours: state.themeColours, analysedSituation: state.analysedSituation, }), dispatch => ({ startConversation: rootVariable => dispatch({type: START_CONVERSATION, rootVariable}), }) ) export default class extends React.Component { componentWillMount() { let { match: { params: { simulateurId } } } = this.props this.simulateurId = simulateurId this.simulateur = R.find(R.propEq('id', simulateurId))(simulateurs) // C'est ici que la génération du formulaire, et donc la traversée des variables commence if (this.simulateur) this.props.startConversation(this.simulateur.objectif) } render(){ if (!this.simulateur) return let started = !this.props.match.params.intro, {foldedSteps, unfoldedSteps, situation} = this.props, sim = path => R.path(R.unless(R.is(Array), R.of)(path))(this.simulateur) return (

{sim('titre')}

{sim('sous-titre')}
{sim('introduction').map( ({icône, texte, titre}) =>
{texte}
)}
{ // Tant que le bouton 'C'est parti' n'est pas cliqué, on affiche l'intro !started ?

{sim(['action', 'texte'])}

Pour simplifier, les résultats sont calculés par mois de contrat.

N'hésitez pas à nous écrire ! La loi française est complexe, car très ciblée. Nous pouvons la rendre plus transparente.

: (
{ !R.isEmpty(foldedSteps) &&
{foldedSteps .map(step => ( ))}
}
{ !R.isEmpty(unfoldedSteps) && do { let step = R.head(unfoldedSteps), pureStep = R.dissoc('component', step) ; }}
{unfoldedSteps.length == 0 &&
{createMarkdownDiv(sim('conclusion'))}
}
)}
) } }