import React, { Component } from 'react' import ReactDOM from 'react-dom' import {decodeRuleName} from '../engine/rules.js' import './Rule.css' import JSONTree from 'react-json-tree' import R from 'ramda' import PageTypeIcon from './PageTypeIcon' import {connect} from 'react-redux' import mockSituation from '../engine/mockSituation.yaml' import {START_CONVERSATION} from '../actions' import classNames from 'classnames' import possiblesDestinataires from '../../règles/ressources/destinataires/destinataires.yaml' import {capitalise0} from '../utils' import knownMecanisms from '../engine/known-mecanisms.yaml' import marked from '../engine/marked' import References from './References' import {AttachDictionary} from './AttachDictionary' import {analyseSituation} from '../engine/traverse' import {formValueSelector} from 'redux-form' // 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), form: state.form }), dispatch => ({ startConversation: rootVariable => dispatch({type: START_CONVERSATION, rootVariable}), }) ) export default class Rule extends Component { render() { let { match: {params: {name: encodedName}}, situationGate, form } = this.props, name = decodeRuleName(encodedName) let rule = analyseSituation(name)(situationGate) console.log('rule', rule) // if (!rule) { // this.props.router.push('/404') // return null // } let situationExists = !R.isEmpty(form) let destinataire = R.path([rule.type, 'destinataire'])(rule), destinataireData = possiblesDestinataires[destinataire] return (

{rule.type} {capitalise0(name)}

{rule.description}

Destinataire

{!destinataireData ?

Non renseigné

:
{destinataireData.image && } {!destinataireData.image &&
{destinataire}
}
{destinataireData.nom &&
{destinataireData.nom}
}
}

Références

{this.renderReferences(rule)}
) } renderReferences({'références': refs}) { if (!refs) return

Cette règle manque de références.

return } } @AttachDictionary(knownMecanisms) class Algorithm extends React.Component { state = { showValues: false } render(){ let {rule, situationExists, explain} = this.props, showValues = situationExists && this.state.showValues return (
{ do { // TODO ce let est incompréhensible ! let [,cond] = R.toPairs(rule).find(([,v]) => v && v.rulePropType == 'cond') || [] cond != null &&

Conditions de déclenchement

{cond.jsx}
}}

Calcul

{rule['formule'].jsx}
{situationExists &&
}
) } }