tutorial builder
This commit is contained in:
parent
253424037c
commit
b20bde4e83
@ -1,8 +1,11 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
import Breadcrumbs from '../../Breadcrumbs';
|
import Breadcrumbs from '../../Breadcrumbs';
|
||||||
import Id from './Id';
|
import Id from './Id';
|
||||||
import Title from './Title';
|
import Title from './Textfield';
|
||||||
|
import Step from './Step';
|
||||||
|
|
||||||
import Typography from '@material-ui/core/Typography';
|
import Typography from '@material-ui/core/Typography';
|
||||||
import Button from '@material-ui/core/Button';
|
import Button from '@material-ui/core/Button';
|
||||||
@ -16,31 +19,6 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|||||||
|
|
||||||
class Builder extends Component {
|
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() {
|
render() {
|
||||||
return (
|
return (
|
||||||
@ -50,32 +28,10 @@ class Builder extends Component {
|
|||||||
<h1>Tutorial-Builder</h1>
|
<h1>Tutorial-Builder</h1>
|
||||||
|
|
||||||
<Id />
|
<Id />
|
||||||
<Title />
|
<Title value={this.props.title} property={'title'} label={'Titel'}/>
|
||||||
|
|
||||||
{this.state.steps.map((step, i) =>
|
{this.props.steps.map((step, i) =>
|
||||||
<div style={{borderRadius: '25px', background: 'lightgrey', padding: '10px', marginBottom: '20px'}}>
|
<Step step={step} index={i} />
|
||||||
<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>
|
|
||||||
|
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@ -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