import React, { Component } from "react"; import PropTypes from "prop-types"; import { connect } from "react-redux"; import { changeContent, setError, deleteError, } from "../../../actions/tutorialBuilderActions"; import hardware from "../../../data/hardware.json"; import { withStyles } from "@material-ui/core/styles"; import withWidth, { isWidthDown } from "@material-ui/core/withWidth"; import ImageList from "@material-ui/core/ImageList"; import ImageListTile from "@material-ui/core/ImageListItem"; import ImageListTileBar from "@material-ui/core/ImageListItemBar"; import FormHelperText from "@material-ui/core/FormHelperText"; import FormLabel from "@material-ui/core/FormLabel"; import * as Blockly from "blockly"; const styles = (theme) => ({ multiImageListTile: { background: theme.palette.primary.main, opacity: 0.9, height: "30px", }, multiImageListTileTitle: { color: theme.palette.text.primary, }, border: { cursor: "pointer", "&:hover": { width: "calc(100% - 4px)", height: "calc(100% - 4px)", border: `2px solid ${theme.palette.primary.main}`, }, }, active: { cursor: "pointer", width: "calc(100% - 4px)", height: "calc(100% - 4px)", border: `2px solid ${theme.palette.primary.main}`, }, errorColor: { color: theme.palette.error.dark, lineHeight: "initial", marginBottom: "10px", }, }); class Requirements extends Component { onChange = (hardware) => { var hardwareArray = this.props.value; if (hardwareArray.filter((value) => value === hardware).length > 0) { hardwareArray = hardwareArray.filter((value) => value !== hardware); } else { hardwareArray.push(hardware); if (this.props.error) { this.props.deleteError(this.props.index, "hardware"); } } this.props.changeContent(hardwareArray, this.props.index, "hardware"); if (hardwareArray.length === 0) { this.props.setError(this.props.index, "hardware"); } }; render() { var cols = isWidthDown("md", this.props.width) ? isWidthDown("sm", this.props.width) ? isWidthDown("xs", this.props.width) ? 2 : 3 : 4 : 6; return (