import React, { Component } from 'react'
import { rules, findRuleByName } from 'Engine/rules'
import { reject, curry } from 'ramda'
import { Link } from 'react-router-dom'
import './TargetSelection.css'

export let salaries = [
		'salaire net',
		'salaire de base',
		'salaire total'
	]

export default class TargetSelection extends Component {
	state = {
		targets: []
	}
	render() {
		let { targets } = this.state

		return (
			<section id="targetSelection">
				<h2>Que voulez-vous calculer ?</h2>
				{this.renderOutputList()}
				{targets.length !== 0 && (
					<div id="action">
						<p>Vous pouvez faire plusieurs choix</p>
						<Link to={'/simu/' + targets.join('+')}>
							<button>Valider</button>
						</Link>
					</div>
				)}
			</section>
		)
	}

	renderOutputList() {
		let popularTargets = [...salaries, 'aides employeur différées'].map(curry(findRuleByName)(rules)),
			{ targets } = this.state
		return (
			<div>
				{popularTargets.map(s => (
					<span key={s.name}>
						<input
							id={s.name}
							type="checkbox"
							checked={targets.includes(s.name)}
							onChange={() =>
								this.setState({
									targets: targets.find(t => t === s.name)
										? reject(t => t === s.name, targets)
										: [...targets, s.name]
								})
							}
						/>
						<label htmlFor={s.name} key={s.name}>
							<i className="fa fa-square-o fa-2x" />
							<i className="fa fa-check-square-o fa-2x" />
							<div>
								<span className="optionTitle">{s.title || s.name}</span>
								<p>{s['résumé']}</p>
							</div>
						</label>
					</span>
				))}
			</div>
		)
	}
}