import React, {useEffect , useState } from 'react'
import {Form, Select, Input, Button, message} from 'antd'
import {API} from '../../Services/API/API'
import {Headers} from '../../Services/API/Headers'
import axios from 'axios'
export default () => {
const [dados, setDados] = useState({ materias : [] , loading: true , cbxMateria : '', txtNota: null, cbxReferencia: '1' , cbxTipo: 'Prova'})
useEffect(() => {
axios.post(API.urlBase, { query: `{getMateriaByUser(id : ${API.userBase}){id Nome_Materia Professor Ano_letivo Data_criacao user_id{ id }}}` }, Headers)
.then( resp => {
setDados({ ...dados, materias: resp.data.data.getMateriaByUser, loading: false})
})
}, []);
function salvarFormulario(e){
e.preventDefault();
axios.post(API.urlBase, { query: `mutation { newNota(input: {Nota: ${dados.txtNota}, Referencia: "${dados.cbxReferencia}", Tipo_nota: "${dados.cbxTipo}", materia_id : ${dados.cbxMateria}, user_id: ${API.userBase}}) {id Nota Referencia Tipo_nota Data_criacao}}`}, Headers)
.then( resp => {
message.success('Materia inserida com sucesso!')
setDados({...dados, cbxMateria : '', txtNota: null, cbxReferencia: '1' , cbxTipo: 'Prova'})
})
}
function AtualizarInput(e){
setDados({...dados, [e.target.name] : e.target.value})
}
function AtualizarSelect(nome , e){
setDados({...dados, [nome] : e})
}
return (
<Form layout="inline" method="post" onSubmit={ e => salvarFormulario(e)}>
<Form.Item>
<Select name="cbxMateria" onSelect={(e) => AtualizarSelect("cbxMateria" , e)} placeholder="Disciplina" style={styled.select} loading={dados.loading} defaultActiveFirstOption={true}>
{dados.materias.map( (res , i ) => {
return (
<Select.Option key={i} value={res.id}>{res.Nome_Materia}</Select.Option>
)
})}
</Select>
</Form.Item>
<Form.Item>
<Input type="text" name="txtNota" placeholder="Nota" required style={styled.input} value={dados.txtNota} onChange={AtualizarInput}/>
</Form.Item>
<Form.Item>
<Select defaultValue='1' name="cbxReferencia" style={styled.select} value={dados.cbxReferencia} onSelect={(e) => AtualizarSelect("cbxReferencia" , e)}>
<Select.Option value="1">1º Referência</Select.Option>
<Select.Option value="2">2º Referência</Select.Option>
<Select.Option value="3">3º Referência</Select.Option>
<Select.Option value="4">4º Referência</Select.Option>
</Select>
</Form.Item>
<Form.Item>
<Select defaultValue='Prova' name="cbxTipo" style={styled.select} value={dados.cbxTipo} onSelect={(e) => AtualizarSelect("cbxTipo" , e)}>
<Select.Option value="Prova">Prova</Select.Option>
<Select.Option value="Trabalho">Trabalho</Select.Option>
<Select.Option value="Nota Extra">Nota Extra</Select.Option>
</Select>
</Form.Item>
<Form.Item>
<Button type="primary" htmlType="submit" name="Send" icon="plus">Salvar registro</Button>
</Form.Item>
</Form>
)
}
const styled = {
input:{
width: 150
},
select : {
width: 150
}
}