import React, { Component } from 'react'; import {Button, SVGIcon, TextField} from 'react-md'; import '../css/components/IntentDetails.css'; import {QUESTION_MAX_LENGTH, ANSWER_MAX_LENGTH, INTENT_NAME_MAX_LENGTH} from '../config/constants'; class IntentDetails extends Component { constructor(props){ super(props); this.state= {intent: props.selectedIntent}; this.addQuestion = this.addQuestion.bind(this); this.deleteQuestion = this.deleteQuestion.bind(this); this.handleQuestionEdit = this.handleQuestionEdit.bind(this); this.handleAnswerEdit = this.handleAnswerEdit.bind(this); this.handleIntentNameEdit = this.handleIntentNameEdit.bind(this); } componentWillReceiveProps(props){ this.setState({intent: props.selectedIntent}); } render() { return (
Question variants
{ this.state.intent.questions.map((question, index)=>{ return (
{this.deleteQuestion(question)}}> } onChange={(e)=>{this.handleQuestionEdit(e,index)}} value={question}/>
); }) }

{
}



); } addQuestion(){ let newIntent = this.state.intent; newIntent.questions.push(''); this.setState({intent: newIntent}); } deleteQuestion(question){ let newIntent = this.state.intent; let removeId = newIntent.questions.indexOf(question); if (removeId !== -1) newIntent.questions.splice(removeId,1); this.setState({intent: newIntent}); } handleQuestionEdit(e,index){ if (e.length === QUESTION_MAX_LENGTH) return; let newIntent = this.state.intent; newIntent.questions[index] = e; this.setState({intent: newIntent}); } handleAnswerEdit(e){ if (e.length === ANSWER_MAX_LENGTH) return; let newIntent = this.state.intent; newIntent.answer = e; this.setState({intent: newIntent}); } handleIntentNameEdit(e){ if (e.length === INTENT_NAME_MAX_LENGTH) return; let newIntent = this.state.intent; newIntent.intentName = e; this.setState({intent: newIntent}); } } export default IntentDetails;