Commit 3aab3e6d authored by Théophile BORNON's avatar Théophile BORNON

file name + panel for each category / subcategory

parent cc3b7bbf
This diff is collapsed.
/*global google */
import React, { useState } from 'react'; import React, { useState } from 'react';
import { saveAs } from "file-saver"; import { saveAs } from "file-saver";
import './App.css'; import './App.css';
...@@ -40,17 +42,30 @@ function App() { ...@@ -40,17 +42,30 @@ function App() {
const classes = useStyles(); const classes = useStyles();
const [state, setState] = useState({ const [state, setState] = useState({
sections: [] sections: [],
name: ""
} }
); );
const generate = () => { const save = () => {
let name = prompt("Nom du fichier");
let blob = new Blob([JSON.stringify(state)], { type: "application/json" }); let blob = new Blob([JSON.stringify(state)], { type: "application/json" });
saveAs(blob, "config.json"); saveAs(blob, name + ".json");
}
const generate = () => {
} }
const loadConfig = () => { const loadConfig = () => {
let config = JSON.parse(state.config) let config;
try {
config = JSON.parse(state.config)
} catch (e) {
alert("Impossible de charger cette configuration")
console.error(e);
return;
}
setState({ ...config }) setState({ ...config })
} }
...@@ -95,8 +110,11 @@ function App() { ...@@ -95,8 +110,11 @@ function App() {
<Grid item xs={12} md={6} lg={4}> <Grid item xs={12} md={6} lg={4}>
<TextField <TextField
id="outlined-name" id="outlined-name"
name="name"
label="Nom du questionnaire" label="Nom du questionnaire"
className={classes.textField} className={classes.textField}
value={state.name}
onChange={handleChange}
margin="normal" margin="normal"
variant="outlined" variant="outlined"
fullWidth fullWidth
...@@ -129,6 +147,14 @@ function App() { ...@@ -129,6 +147,14 @@ function App() {
> >
Ajouter une section Ajouter une section
</Button> </Button>
<Button
size="medium"
variant="contained"
color="primary"
onClick={save}
>
Sauvegarder la configuration
</Button>
<Button <Button
size="medium" size="medium"
variant="contained" variant="contained"
......
...@@ -2,10 +2,13 @@ import React from "react"; ...@@ -2,10 +2,13 @@ import React from "react";
import { makeStyles } from "@material-ui/core/styles" import { makeStyles } from "@material-ui/core/styles"
import Grid from "@material-ui/core/Grid"; import Grid from "@material-ui/core/Grid";
import Divider from "@material-ui/core/Divider"; import ExpansionPanel from '@material-ui/core/ExpansionPanel';
import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';
import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import { Danger } from "./Buttons"; import { Danger } from "./Buttons";
import SubCategory from "./SubCategory"; import SubCategory from "./SubCategory";
...@@ -54,11 +57,16 @@ export default function Category(props) { ...@@ -54,11 +57,16 @@ export default function Category(props) {
return ( return (
<Grid container spacing={2} justify="flex-end"> <Grid container spacing={2} justify="flex-end">
<Grid item xs={12} md={10}> <Grid item xs={12} md={10}>
<Divider /> <ExpansionPanel>
<Typography variant="h6" component="h5"> <ExpansionPanelSummary
{category.name} expandIcon={<ExpandMoreIcon />}
</Typography> aria-controls="panel1a-content"
</Grid> id="panel1a-header"
>
<Typography className={classes.heading}>{category.name}</Typography>
</ExpansionPanelSummary>
<ExpansionPanelDetails>
<Grid container>
<Grid item xs={12} md={10}> <Grid item xs={12} md={10}>
<TextField <TextField
id="name" id="name"
...@@ -102,5 +110,9 @@ export default function Category(props) { ...@@ -102,5 +110,9 @@ export default function Category(props) {
</Danger> </Danger>
</Grid> </Grid>
</Grid> </Grid>
</ExpansionPanelDetails>
</ExpansionPanel>
</Grid>
</Grid>
) )
} }
\ No newline at end of file
...@@ -2,12 +2,17 @@ import React from "react"; ...@@ -2,12 +2,17 @@ import React from "react";
import { makeStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import Grid from "@material-ui/core/Grid"; import Grid from "@material-ui/core/Grid";
import ExpansionPanel from '@material-ui/core/ExpansionPanel';
import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';
import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';
import FormControlLabel from "@material-ui/core/FormControlLabel"; import FormControlLabel from "@material-ui/core/FormControlLabel";
import Checkbox from "@material-ui/core/Checkbox"; import Checkbox from "@material-ui/core/Checkbox";
import Divider from "@material-ui/core/Divider"; import Divider from "@material-ui/core/Divider";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import { Danger } from "./Buttons"; import { Danger } from "./Buttons";
const useStyles = makeStyles(theme => ({ const useStyles = makeStyles(theme => ({
...@@ -37,6 +42,17 @@ export default function SubCategory(props) { ...@@ -37,6 +42,17 @@ export default function SubCategory(props) {
} }
return ( return (
<Grid container spacing={2} justify="flex-end">
<Grid item xs={12} md={10}>
<ExpansionPanel>
<ExpansionPanelSummary
expandIcon={<ExpandMoreIcon />}
aria-controls="panel1a-content"
id="panel1a-header"
>
<Typography className={classes.heading}>{subCategory.name}</Typography>
</ExpansionPanelSummary>
<ExpansionPanelDetails>
<Grid container justify="flex-end" alignItems="center" className={classes.root} spacing={2}> <Grid container justify="flex-end" alignItems="center" className={classes.root} spacing={2}>
<Grid item xs={12} md={10}> <Grid item xs={12} md={10}>
<Divider /> <Divider />
...@@ -136,5 +152,9 @@ export default function SubCategory(props) { ...@@ -136,5 +152,9 @@ export default function SubCategory(props) {
</Danger> </Danger>
</Grid> </Grid>
</Grid > </Grid >
</ExpansionPanelDetails>
</ExpansionPanel>
</Grid>
</Grid>
); );
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment