import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { changeContent, deleteProperty, setError, deleteError } from '../../../actions/tutorialBuilderActions'; import moment from 'moment'; import localization from 'moment/locale/de'; import * as Blockly from 'blockly/core'; import BlocklyWindow from '../../Blockly/BlocklyWindow'; import { withStyles } from '@material-ui/core/styles'; import Switch from '@material-ui/core/Switch'; import FormControlLabel from '@material-ui/core/FormControlLabel'; import FormHelperText from '@material-ui/core/FormHelperText'; import FormLabel from '@material-ui/core/FormLabel'; import Button from '@material-ui/core/Button'; import Grid from '@material-ui/core/Grid'; const styles = (theme) => ({ errorColor: { color: theme.palette.error.dark }, errorBorder: { border: `1px solid ${theme.palette.error.dark}` }, errorButton: { marginTop: '5px', height: '40px', backgroundColor: theme.palette.error.dark, '&:hover':{ backgroundColor: theme.palette.error.dark } } }); class BlocklyExample extends Component { constructor(props){ super(props); this.state={ checked: props.task ? props.task : props.value ? true : false, input: null, }; } componentDidMount(){ if(this.props.task){ this.props.setError(this.props.index, 'xml'); } } componentDidUpdate(props, state){ if(props.task !== this.props.task || props.value !== this.props.value){ this.setState({checked: this.props.task ? this.props.task : this.props.value ? true : false}, () => this.isError() ); } if(state.checked !== this.state.checked){ this.isError(); } } isError = () => { if(this.state.checked && !this.props.value){ this.props.setError(this.props.index, 'xml'); } else { this.props.deleteError(this.props.index, 'xml'); } } onChange = (value) => { var oldValue = this.state.checked; this.setState({checked: value}); console.log(!value); if(oldValue !== value && !value){ this.props.deleteProperty(this.props.index, 'xml'); } } render() { moment.locale('de', localization); return (