From a21c8f5b7351c9d19445e085283c8e14e384e789 Mon Sep 17 00:00:00 2001 From: eliseukadesh67 Date: Sun, 28 Jul 2024 20:18:34 -0300 Subject: [PATCH] feature: adiconando o dropdown para o status Refs: #5 --- src/components/containers/StatusDropdown.js | 13 +++++++++-- src/components/forms/ContractForm.js | 24 ++++++++++++++++----- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/components/containers/StatusDropdown.js b/src/components/containers/StatusDropdown.js index eb91aed9..c404fb1d 100644 --- a/src/components/containers/StatusDropdown.js +++ b/src/components/containers/StatusDropdown.js @@ -1,12 +1,17 @@ import React, { useState } from 'react'; +import PropTypes from 'prop-types'; -function Dropdown() { +function StatusDropdown({ onChange }) { // Estado para armazenar o valor selecionado const [selectedOption, setSelectedOption] = useState(''); // Função para lidar com a mudança de seleção const handleChange = (event) => { setSelectedOption(event.target.value); + + if (onChange) { + onChange(event); // Passa o evento completo + } }; return ( @@ -54,4 +59,8 @@ function Dropdown() { ); } -export default Dropdown; +StatusDropdown.propTypes = { + onChange: PropTypes.func.isRequired, +}; + +export default StatusDropdown; diff --git a/src/components/forms/ContractForm.js b/src/components/forms/ContractForm.js index eb6c06e8..0cf6e8bc 100644 --- a/src/components/forms/ContractForm.js +++ b/src/components/forms/ContractForm.js @@ -3,7 +3,8 @@ import { toast } from "react-toastify"; import Navbar from "../navbar/Navbar"; import "../../style/components/contractForm.css"; import { createContract } from "../../services/contractService"; -import Dropdown from "../containers/StatusDropdown"; +import StatusDropdown from "../containers/StatusDropdown"; +import encodeSpecialChars from "../utils/encode.js"; export default function ContractForm() { const [numero, setNumero] = useState(''); @@ -11,7 +12,8 @@ export default function ContractForm() { const [descricao, setDescricao] = useState(''); const [dataInicio, setDataInicio] = useState(new Date(Date.now()).toISOString()); const [dataTermino, setdataTermino] = useState(new Date(Date.now()).toISOString()); - const ativo = false + const [ativo, setAtivo] = useState(false); + const handleSubmit = async (e) => { @@ -23,7 +25,6 @@ export default function ContractForm() { dataInicio: new Date(dataInicio).toISOString(), dataTermino: new Date(dataTermino).toISOString(), ativo - }; console.log("Form data:", formData); @@ -32,7 +33,10 @@ export default function ContractForm() { if(response.type === "success") { toast.success("Contrato criado com sucesso!") setTimeout(() => { - window.location = "/listagemContrato"; + const encodedParam = encodeSpecialChars(formData.numero) + const encodedUrl = `/verContrato/${encodedParam}`; + console.log(encodedUrl) + window.location = encodedUrl }, 1000); } else { if(response.error.response.status === 400){ @@ -48,6 +52,16 @@ export default function ContractForm() { window.location = "/listagemContrato" }; + const handleStatus = (e) => { + console.log("value", e.target.value) + if(e.target.value === "ativo"){ + setAtivo(true) + } + else if(e.target.value === "inativo"){ + setAtivo(false) + } + } + return ( <> @@ -69,7 +83,7 @@ export default function ContractForm() { onChange={(e) => setNumero(e.target.value)} > - +