import React, { Component } from 'react' // import {findRuleByName} from '../engine/rules.js' import {analyseSituation} from '../engine/traverse' import './Rule.css' import JSONTree from 'react-json-tree' import R from 'ramda' import PageTypeIcon from './PageTypeIcon' import {connect} from 'react-redux' import {formValueSelector} from 'redux-form' import mockSituation from '../engine/mockSituation.yaml' import {START_CONVERSATION} from '../actions' import classNames from 'classnames' // situationGate function useful for testing : let testingSituationGate = v => // eslint-disable-line no-unused-vars R.path(v.split('.'))(mockSituation) @connect( state => ({ // situationGate: name => formValueSelector('conversation')(state, name), analysedSituation: state.analysedSituation, form: state.form }), dispatch => ({ startConversation: () => dispatch({type: START_CONVERSATION}), }) ) export default class Rule extends Component { state = { showValues: false } componentDidMount() { // C'est ici que la génération du formulaire, et donc la traversée des variables commence this.props.startConversation() } render() { let { params: {name}, analysedSituation, form } = this.props, objectives = R.path(['formule', 'explanation', 'explanation'])(analysedSituation) if (!objectives) return null let rule = objectives.find(R.pathEq(['explanation', 'name'], name)).explanation if (!rule) { this.props.router.push('/404') return null } let situationExists = !R.isEmpty(form), showValues = situationExists && this.state.showValues return (
{rule.description}
Pourquoi cette règle me concerne ? Comment est-elle calculée ? C'est pas très lisible pour l'instant, mais ça le deviendra
*/}