import React, {Component} from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import * as Blockly from 'blockly/core'; import { withStyles } from '@material-ui/core/styles'; import Tooltip from '@material-ui/core/Tooltip'; import Typography from '@material-ui/core/Typography'; import { faPuzzlePiece, faTrash, faPlus, faPen, faArrowsAlt } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; const styles = (theme) => ({ stats: { backgroundColor: theme.palette.primary.main, display: 'inline', marginLeft: '50px', padding: '3px 10px', borderRadius: '25%' } }); class WorkspaceStats extends Component { render() { const workspace = Blockly.getMainWorkspace(); const remainingBlocksInfinity = workspace ? workspace.remainingCapacity() !== Infinity : null; return (
{workspace ? workspace.getAllBlocks().length : 0}
{this.props.create}
{this.props.change}
{this.props.move}
{this.props.delete}
{remainingBlocksInfinity ? {workspace.remainingCapacity()} verbleibende Blöcke : null}
); }; } WorkspaceStats.propTypes = { create: PropTypes.number.isRequired, change: PropTypes.number.isRequired, delete: PropTypes.number.isRequired, move: PropTypes.number.isRequired, worskpaceChange: PropTypes.number.isRequired }; const mapStateToProps = state => ({ create: state.workspace.stats.create, change: state.workspace.stats.change, delete: state.workspace.stats.delete, move: state.workspace.stats.move, worskpaceChange: state.workspace.change }); export default connect(mapStateToProps, null)(withStyles(styles, {withTheme: true})(WorkspaceStats));