/* @flow */ import { resetSimulation } from 'Actions/actions' import { React, T } from 'Components' import Answers from 'Components/AnswerList' import Conversation from 'Components/conversation/Conversation' import withColours from 'Components/utils/withColours' import { compose } from 'ramda' import emoji from 'react-easy-emoji' import { connect } from 'react-redux' import { nextStepsSelector, noUserInputSelector } from 'Selectors/analyseSelectors' export default compose( withColours, connect( state => ({ conversationStarted: state.conversationStarted, previousAnswers: state.conversationSteps.foldedSteps, noNextSteps: state.conversationStarted && nextStepsSelector(state).length == 0, noUserInput: noUserInputSelector(state) }), { resetSimulation } ) )( class Simulation extends React.Component { state = { displayAnswers: false } render() { let { noNextSteps, previousAnswers, noUserInput, conversationStarted, resetSimulation, showTargetsAnyway, targetsTriggerConversation } = this.props let arePreviousAnswers = previousAnswers.length > 0, displayConversation = !targetsTriggerConversation || conversationStarted, showTargets = targetsTriggerConversation || showTargetsAnyway return ( <> {this.state.displayAnswers && ( <Answers onClose={() => this.setState({ displayAnswers: false })} /> )} <div style={{ display: 'flex', justifyContent: 'flex-start', alignItems: 'baseline' }}> {arePreviousAnswers ? ( <button style={{ marginRight: '1em' }} className="ui__ small button " onClick={() => this.setState({ displayAnswers: true })}> <T>Voir mes réponses</T> </button> ) : ( <span /> )} {displayConversation && !noUserInput && ( <button className="ui__ small simple skip button left" onClick={() => resetSimulation()}> ⟲ <T>Recommencer</T> </button> )} </div> {displayConversation && ( <> <Conversation textColourOnWhite={this.props.colours.textColourOnWhite} /> {noNextSteps && ( <> <h2> {emoji('🌟')}{' '} <T k="simulation-end.title">Situation complétée à 100%</T>{' '} </h2> <p> <T k="simulation-end.text"> Nous n'avons plus de questions à poser, vous avez atteint l'estimation la plus précise. </T> {this.props.customEndMessages} </p> </> )} </> )} {showTargets && this.props.targets} </> ) } } )