|
@@ -10,14 +10,27 @@ const CREATE_PROJECT_VERSION = gql`
|
|
|
}
|
|
|
`
|
|
|
|
|
|
+const ProjectVersionFields = props => (
|
|
|
+ <fieldset>
|
|
|
+ {props.title && <legend>{props.title}</legend>}
|
|
|
+ <label htmlFor='name'>Project name</label>
|
|
|
+ <input type='text' name='name' id='name' placeholder='Project version name' value={props.state.name} onChange={props.onChange} />
|
|
|
+ <label htmlFor='date'>Date</label>
|
|
|
+ <input type='date' name='date' id='date' placeholder='Project date' value={props.state.date} onChange={props.onChange} />
|
|
|
+ <label htmlFor='change'>Comments</label>
|
|
|
+ <input type='text' name='change' id='change' placeholder='Project change' value={props.state.change} onChange={props.onChange} /><button onClick={props.addChange}>Add</button>
|
|
|
+ </fieldset>
|
|
|
+)
|
|
|
+
|
|
|
class ProjectVersionForm extends React.Component {
|
|
|
state = {
|
|
|
- id: this.props.project ? this.props.project.id : null,
|
|
|
+ id: null,
|
|
|
name: '',
|
|
|
date: '',
|
|
|
change: '',
|
|
|
changes: [],
|
|
|
- project: null
|
|
|
+ project: null,
|
|
|
+ ...this.props.projectVersion
|
|
|
}
|
|
|
|
|
|
toState = event => {
|
|
@@ -25,11 +38,6 @@ class ProjectVersionForm extends React.Component {
|
|
|
}
|
|
|
|
|
|
addComment = event => {
|
|
|
- event.preventDefault()
|
|
|
- const newState = { ...this.state }
|
|
|
- newState.changes.push(this.state.change)
|
|
|
- newState.change = ''
|
|
|
- this.setState(newState)
|
|
|
}
|
|
|
|
|
|
render() {
|
|
@@ -41,17 +49,14 @@ class ProjectVersionForm extends React.Component {
|
|
|
const { data } = await createProjectVersion()
|
|
|
this.state.id = data.createProjectVersion.id
|
|
|
}}>
|
|
|
- {!this.props.title && <h1>Project Version</h1>}
|
|
|
- <fieldset id='project-generic'>
|
|
|
- <label htmlFor='name'>Project name</label>
|
|
|
- <input type='text' name='name' id='name' placeholder='Project version name' value={this.state.name} onChange={this.toState} />
|
|
|
- <label htmlFor='date'>Date</label>
|
|
|
- <input type='date' name='date' id='date' placeholder='Project date' value={this.state.date} onChange={this.toState} />
|
|
|
- <label htmlFor='change'>Comments</label>
|
|
|
- <input type='text' name='change' id='change' placeholder='Project change' value={this.state.change} onChange={this.toState} /><button onClick={this.addComment}>Add</button>
|
|
|
- {this.state.changes.map((change, index) => <p key={index}>{change}</p>)}
|
|
|
- {this.props.project || <ProjectSelector name='project' id='project' value={this.state.project} onChange={this.toState} />}
|
|
|
- </fieldset>
|
|
|
+ <ProjectVersionFields title="Project Version" state={this.state} addChange={event => {
|
|
|
+ event.preventDefault()
|
|
|
+ const newChanges = this.state.changes
|
|
|
+ newChanges.push(this.state.change)
|
|
|
+ this.setState({ changes: newChanges, change: '' })
|
|
|
+ }} onChange={this.toState} />
|
|
|
+ {this.state.changes.map((change, index) => <p key={index}>{change}</p>)}
|
|
|
+ {this.props.project || <ProjectSelector name='project' id='project' value={this.state.project} onChange={this.toState} />}
|
|
|
<button type='submit'>Save</button>
|
|
|
</form>
|
|
|
)}
|