import React from 'react'
import './Controls.css'
import emoji from 'react-easy-emoji'
import { connect } from 'react-redux'
import { startConversation, hideControl } from 'Actions/actions'
import { makeJsx } from 'Engine/evaluation'
import { createMarkdownDiv } from 'Engine/marked'
import withColours from './utils/withColours'
import withLanguage from 'Components/utils/withLanguage'
function Controls({
controls,
startConversation,
hideControl,
foldedSteps,
colours,
hiddenControls
}) {
if (!controls?.length) return null
return (
{controls.map(({ level, test, message, solution, evaluated }) =>
hiddenControls.includes(test) ? null : (
-
{emoji(level == 'avertissement' ? '⚠️' : 'ℹ️')}
{message && createMarkdownDiv(message)}
{!message && (
{makeJsx(evaluated)}
)}
{solution && !foldedSteps.includes(solution.cible) && (
{/*emoji('💡')*/}
)}
)
)}
)
}
export default connect(
(state, props) => ({
foldedSteps: state.conversationSteps.foldedSteps,
key: props.language,
hiddenControls: state.hiddenControls
}),
dispatch => ({
startConversation: cible => dispatch(startConversation(cible)),
hideControl: id => dispatch(hideControl(id))
})
)(withColours(withLanguage(Controls)))