tutorial builder
This commit is contained in:
		
							parent
							
								
									253424037c
								
							
						
					
					
						commit
						b20bde4e83
					
				| @ -1,8 +1,11 @@ | ||||
| import React, { Component } from 'react'; | ||||
| import PropTypes from 'prop-types'; | ||||
| import { connect } from 'react-redux'; | ||||
| 
 | ||||
| import Breadcrumbs from '../../Breadcrumbs'; | ||||
| import Id from './Id'; | ||||
| import Title from './Title'; | ||||
| import Title from './Textfield'; | ||||
| import Step from './Step'; | ||||
| 
 | ||||
| import Typography from '@material-ui/core/Typography'; | ||||
| import Button from '@material-ui/core/Button'; | ||||
| @ -16,31 +19,6 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; | ||||
| 
 | ||||
| class Builder extends Component { | ||||
| 
 | ||||
|   state = { | ||||
|     steps: [ | ||||
|       { | ||||
|         headline: '' | ||||
|       }, | ||||
|       { | ||||
|         headline: '' | ||||
|       } | ||||
|     ] | ||||
|   } | ||||
| 
 | ||||
|   addStep = (index) => { | ||||
|     var step = { | ||||
|       headline: '' | ||||
|     }; | ||||
|     var steps = this.state.steps; | ||||
|     steps.splice(index, 0, step); | ||||
|     this.setState({steps: steps}); | ||||
|   } | ||||
| 
 | ||||
|   removeStep = (index) => { | ||||
|     var steps = this.state.steps; | ||||
|     steps.splice(index, 1); | ||||
|     this.setState({steps: steps}); | ||||
|   } | ||||
| 
 | ||||
|   render() { | ||||
|     return ( | ||||
| @ -50,32 +28,10 @@ class Builder extends Component { | ||||
|         <h1>Tutorial-Builder</h1> | ||||
| 
 | ||||
|         <Id /> | ||||
|         <Title /> | ||||
|         <Title value={this.props.title} property={'title'} label={'Titel'}/> | ||||
| 
 | ||||
|         {this.state.steps.map((step, i) => | ||||
|           <div style={{borderRadius: '25px', background: 'lightgrey', padding: '10px', marginBottom: '20px'}}> | ||||
|             <Typography style={{marginBottom: '10px', marginLeft: '25px'}}>Schritt {i+1}</Typography> | ||||
|             <Title /> | ||||
|             <div style={{display: 'flex'}}> | ||||
|               <Button | ||||
|                 disabled={i === 0} | ||||
|                 onClick={() => this.removeStep(i)} | ||||
|                 variant='contained' | ||||
|                 color='primary' | ||||
|                 style={{borderRadius: '25px 0 0 25px', height: '40px', boxShadow: '0 0 transparent'}} | ||||
|               > | ||||
|                 <FontAwesomeIcon icon={faMinus} /> | ||||
|               </Button> | ||||
|               <Button | ||||
|                 onClick={() => this.addStep(i)} | ||||
|                 variant='contained' | ||||
|                 color='primary' | ||||
|                 style={{borderRadius: '0 25px 25px 0', height: '40px', boxShadow: '0 0 transparent'}} | ||||
|               > | ||||
|                 <FontAwesomeIcon icon={faPlus} /> | ||||
|               </Button> | ||||
|             </div> | ||||
|           </div> | ||||
|         {this.props.steps.map((step, i) => | ||||
|           <Step step={step} index={i} /> | ||||
| 
 | ||||
|         )} | ||||
| 
 | ||||
| @ -92,4 +48,16 @@ class Builder extends Component { | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| export default Builder; | ||||
| Builder.propTypes = { | ||||
|   title: PropTypes.string.isRequired, | ||||
|   steps: PropTypes.array.isRequired, | ||||
|   change: PropTypes.number.isRequired | ||||
| }; | ||||
| 
 | ||||
| const mapStateToProps = state => ({ | ||||
|   title: state.builder.title, | ||||
|   steps: state.builder.steps, | ||||
|   change: state.builder.change | ||||
| }); | ||||
| 
 | ||||
| export default connect(mapStateToProps, null)(Builder); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user