import React from 'react'; import './ConfigurationItem.css'; import settings from '../../assets/settings'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {faInfoCircle} from '@fortawesome/free-solid-svg-icons'; import {connect} from 'react-redux'; import {notifyInfo} from '../../redux/actions/error_actions'; 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 = handleChanged(e)} type={'checkbox'}/>; break; case "double": data = handleChanged(e)} step={"0.01"} className={'ConfigurationItemInput'} type={'number'} value={parseFloat(props.value).toFixed(2)}/>; break; case "list": const options = props.items.map((s, i) => { return ( ); }); data = ( ); break; case "string": data = handleChanged(e)} className={'ConfigurationItemInput'} 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}
); });