From 166e54d2d61939aaa6c811250e4c7de5f0651ff5 Mon Sep 17 00:00:00 2001 From: pdg16 <pdg16@inf.ufpr.br> Date: Fri, 17 Jan 2020 11:11:13 -0300 Subject: [PATCH] add select field option --- src/App.js | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/src/App.js b/src/App.js index db00a15..0430743 100644 --- a/src/App.js +++ b/src/App.js @@ -6,6 +6,7 @@ import TextField from '@material-ui/core/TextField'; import AddIcon from '@material-ui/icons/Add'; import IconButton from '@material-ui/core/IconButton'; import ReorderIcon from '@material-ui/icons/Reorder'; +import RadioButtonCheckedIcon from '@material-ui/icons/RadioButtonChecked'; import FormFieldText from './components/FormFieldText' @@ -15,7 +16,7 @@ import FormFieldSelect from './components/FormFieldSelect' const useStyles = makeStyles(theme => ({ menu: { width: theme.spacing(6), - height: theme.spacing(15), + minheight: theme.spacing(15), position: 'fixed', top: theme.spacing(10), left: '90%', @@ -29,12 +30,22 @@ function App() { const [form, setForm] = useState([]); function addToFormQuestion() { - setForm([...form, {type: "question", question: ""}]); + setForm([...form, {type: "question", required: false, question: ""}]); console.log(form); } function addToFormSelect() { - setForm([...form, {type: "select", question: "", options: []}]); + setForm([...form, {type: "select", question: "", required: false, options: [""]}]); + console.log(form); + } + + function addToFormRadio() { + + } + + function addSelectOption(index) { + form[index].options.push(""); + setForm([...form]); console.log(form); } @@ -45,18 +56,30 @@ function App() { setForm([...form]); } + function removeSelectOption(index, idopt) { + form[index].options.splice(idopt, 1); + setForm([...form]); + console.log(form); + } + function setTextField(value, index) { form[index].question = value; setForm([...form]); console.log(form); } - - function setSelectField(value, index) { + + function setSelectOption(value, index, idopt) { + form[index].options[idopt] = value; + setForm([...form]); console.log(form); } + function setRequiredField(index) { + form[index].required = !form[index].required; + setForm([...form]); + console.log(form); + } - return ( <div> <Grid @@ -69,9 +92,14 @@ function App() { { form.map((x, index) => { if(x.type === "question") - return <FormFieldText question={x.question} idq={index} deleteFromForm={deleteFromForm} setTextField={setTextField}/> + return <FormFieldText question={x.question} idq={index} + deleteFromForm={deleteFromForm} setTextField={setTextField} + setRequiredField={setRequiredField}/> else if(x.type === "select") - return <FormFieldSelect question={x.question} idq={index} deleteFromForm={deleteFromForm} setTextField={setSelectField}/> + return <FormFieldSelect question={x.question} options={x.options} idq={index} + deleteFromForm={deleteFromForm} addSelectOption={addSelectOption} + removeSelectOption={removeSelectOption} setSelectOption={setSelectOption} + setTextField={setTextField} setRequiredField={setRequiredField} /> }) } @@ -93,6 +121,9 @@ function App() { <IconButton aria-label="add select" onClick={addToFormSelect}> <ReorderIcon /> </IconButton> + <IconButton aria-label="add radio" onClick={addToFormRadio}> + <RadioButtonCheckedIcon /> + </IconButton> </Grid> </Grid> </Paper> -- GitLab