import React from 'react'; import './ConfigurationItem.css'; import CheckBox from '../UI/CheckBox/CheckBox'; import {connect} from 'react-redux'; import {faInfoCircle} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {notifyInfo} from '../../redux/actions/error_actions'; import settings from '../../assets/settings'; import DropDown from '../UI/DropDown/DropDown'; const mapDispatchToProps = dispatch => { return { notifyInfo: (title, msg) => dispatch(notifyInfo(title, msg)) } }; export default connect(null, mapDispatchToProps)(props => { const handleChanged = (e) => { const target = e.target; if (target.type === 'checkbox') { target.value = e.target.checked ? "true" : "false"; } props.changed(target); }; let infoDisplay; if (settings[props.grouping] && settings[props.grouping][props.label]) { const displayInfo = () => { const description = settings[props.grouping][props.label]; props.notifyInfo(props.label, description); }; infoDisplay = {displayInfo(); return false;}}>; } let data; switch (props.template.type) { case "bool": data = ; break; case "double": data = handleChanged(e)} step={"0.01"} className={'ConfigurationItemInput'} type={'number'} value={parseFloat(props.value).toFixed(2)}/>; break; case "list": data = ; break; case "string": data = handleChanged(e)} className={'ConfigurationItemInput'} disabled={props.readOnly} type={'text'} value={props.value}/>; break; case "uint8": data = handleChanged(e)} className={'ConfigurationItemInput'} type={'number'} value={props.value}/>; break; case "uint16": data = handleChanged(e)} className={'ConfigurationItemInput'} type={'number'} value={props.value}/>; break; case "uint32": data = handleChanged(e)} className={'ConfigurationItemInput'} type={'number'} value={props.value}/>; break; case "uint64": data = handleChanged(e)} className={'ConfigurationItemInput'} type={'number'} value={props.value}/>; break; default: data = {props.value}; } return ( {infoDisplay ? {infoDisplay} {props.label} : {props.label}} {data} ); });