Skip to content

Commit

Permalink
Merge pull request #46 from fga-eps-mds/fix/44-componente-select
Browse files Browse the repository at this point in the history
[Fix] - Componente Select
  • Loading branch information
eliseukadesh67 authored Aug 20, 2024
2 parents 248247f + f49b5eb commit c296d65
Show file tree
Hide file tree
Showing 7 changed files with 217 additions and 105 deletions.
2 changes: 1 addition & 1 deletion src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ function App() {
<Route path="/editarContrato" element={<EditContractForm />} />
<Route path="/listagemContrato" element={<ContractList />} />
<Route path="/verContrato/:id" element={<ViewContract />} />
<Route path="/addContador" element={<AddContador />} />
<Route path="/registrarContadores" element={<AddContador />} />
<Route element={<AdminRoutes/>}>
<Route path="/listausuarios" element={<UsersList />} />
<Route path="/cadastro" element={<CreateUserPage />} />
Expand Down
4 changes: 2 additions & 2 deletions src/components/forms/EditPrinterForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,7 @@ export default function EditPrinterForm() {
<SelectContainer
id="cidade"
name="cidade"
options={localizacoes.map(m => m.name)}
options={localizacoes ? localizacoes.map(m => m.name) : []}
className="md-select"
label="Cidade"
onChange={handleLocalizacaoChange}
Expand All @@ -457,7 +457,7 @@ export default function EditPrinterForm() {
<SelectContainer
id="workstation"
name="workstation"
options={localizacoes.find(m => m.name === selectedCidade)?.workstations.map(m => m.name) || []}
options={localizacoes ? localizacoes.find(m => m.name === selectedCidade)?.workstations.map(m => m.name) || [] : []}
className="lg-select"
label="Posto de trabalho"
onChange={handleWorkstationChange}
Expand Down
10 changes: 5 additions & 5 deletions src/components/forms/RegisterPrinterForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ export default function RegisterPrinterForm() {
}

setErrors(newErrors);
return Object.keys(newErrors).length === 0; // Retorna true se não houver erros
return Object.keys(newErrors).length === 0;
};

const handleFormSubmit = async () => {
Expand Down Expand Up @@ -237,7 +237,7 @@ export default function RegisterPrinterForm() {
<SelectContainer
id="marca"
name="marca"
options={marcas.map(m => m.marca)}
options={marcas ? marcas.map(m => m.marca) : []}
className="md-select"
label="Marca"
onChange={handleMarcaChange}
Expand Down Expand Up @@ -289,7 +289,7 @@ export default function RegisterPrinterForm() {
<SelectContainer
id="cidade"
name="cidade"
options={localizacoes.map(m => m.name)}
options={localizacoes ? localizacoes.map(m => m.name) : []}
className="md-select"
label="Cidade"
onChange={handleLocalizacaoChange}
Expand All @@ -300,7 +300,7 @@ export default function RegisterPrinterForm() {
<SelectContainer
id="workstation"
name="workstation"
options={workstations.map(m => m.name)}
options={workstations ? workstations.map(m => m.name) : []}
className="lg-select"
label="Posto de Trabalho"
onChange={handleWorkstationChange}
Expand All @@ -311,7 +311,7 @@ export default function RegisterPrinterForm() {
<SelectContainer
id="subworkstation"
name="subworkstation"
options={subWorkstations.map(m => m.name)}
options={subWorkstations ? subWorkstations.map(m => m.name) : []}
className="lg-select"
label="Subposto de Trabalho"
onChange={handleSubWorkstationChange}
Expand Down
1 change: 1 addition & 0 deletions src/components/navbar/Navbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ const Navbar = () => {
<Link to="/padraoimpressora">Cadastro de padrão de impressora</Link>
<Link to="/impressorascadastradas">Impressoras cadastradas</Link>
<Link to="/padroescadastrados">Padrões de impressora cadastrados</Link>
<Link to="/registrarContadores">Registrar Contadores</Link>
</div>
)}
</button>
Expand Down
78 changes: 43 additions & 35 deletions src/pages/AddContador.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import { getPrinters, getLocalizacao, addContadores } from "../services/printerS
import { getPadroes } from "../services/patternService";
import { toast } from "react-toastify";
import SelectContainer from '../components/containers/SelectContainer';
import DateContainer from '../components/containers/DateContainer';
import NumberContainer from '../components/containers/NumberContainer';

const AddContador = () => {
const [localizacoes, setLocalizacoes] = useState([]);
Expand All @@ -17,9 +19,9 @@ const AddContador = () => {
const [equipamentos, setEquipamentos] = useState([]);
const [equipamentosFiltrados, setEquipamentosFiltrados] = useState([]);
const [selectedEquipamentoId, setSelectedEquipamentoId] = useState("");
const [quantidadeImpressoesPB, setQuantidadeImpressoesPB] = useState("");
const [quantidadeImpressoesCor, setQuantidadeImpressoesCor] = useState("");
const [dataContador, setdataContador] = useState("");
const [quantidadeImpressoesPB, setQuantidadeImpressoesPB] = useState(0);
const [quantidadeImpressoesCor, setQuantidadeImpressoesCor] = useState(0);
const [dataContador, setDataContador] = useState("");
const [isColorido, setIsColorido] = useState(false);

const navigate = useNavigate();
Expand All @@ -28,7 +30,13 @@ const AddContador = () => {
const fetchLocalizacoes = async () => {
try {
const response = await getLocalizacao();
setLocalizacoes(response.data);

if (response.type === 'error'){
toast.error("Erro ao buscar localizações!")
}
else {
setLocalizacoes(response.data);
}
} catch (error) {
console.error('Erro ao buscar localizações:', error);
}
Expand All @@ -43,6 +51,9 @@ const AddContador = () => {
setEquipamentos(dataEquipamentos.data);
setEquipamentosFiltrados(dataEquipamentos.data);
}
else{
toast.error("Erro ao buscar impressoras!")
}
} catch (error) {
console.error('Erro ao obter lista de impressoras:', error);
}
Expand Down Expand Up @@ -97,11 +108,8 @@ const AddContador = () => {
dataContador: new Date(dataContador).toISOString(),
};

console.log("Dados enviados:", contadoresData);

try {
const response = await addContadores(contadoresData);
console.log('Resposta do backend:', response);

if (response.type === 'success') {
toast.success("Contador registrado com sucesso!");
Expand Down Expand Up @@ -165,71 +173,71 @@ const AddContador = () => {
<div className="localizacao-underline"></div>
<div className="localizacao-fields">
<SelectContainer
id="cidade"
name="cidade"
options={localizacoes.map((localizacao) => localizacao.name)}
id="cidade-contador"
name="cidade-contador"
className={"md-select"}
options={localizacoes ? localizacoes.map((localizacao) => localizacao.name) : []}
label="Cidade"
value={cidade}
onChange={handleLocalizacaoChange}
/>
<SelectContainer
id="regional"
name="regional"
options={workstations.map((workstation) => workstation.name)}
id="regional-contador"
name="regional-contador"
className={"md-select"}
options={workstations ? workstations.map((workstation) => workstation.name) : []}
label="Regional"
value={postoTrabalho}
onChange={handleWorkstationChange}
/>
<SelectContainer
id="unidade"
name="unidade"
options={subworkstations.map((subworkstation) => subworkstation.name)}
id="unidade-contador"
name="unidade-contador"
className={"md-select"}
options={subworkstations ? subworkstations.map((subworkstation) => subworkstation.name) : []}
label="Unidade"
value={subpostoTrabalho}
onChange={handleSubWorkstationChange}
/>
</div>
<div className="fields-underline"></div>
</div>
<div className="fields-underline"></div>
<div className="contadores-section">
<SelectContainer
id="equipamento"
name="equipamento"
options={equipamentosFiltrados.map((equipamento) => equipamento.numSerie)}
className={"md-select"}
options={equipamentosFiltrados ? equipamentosFiltrados.map((equipamento) => equipamento.numSerie) : []}
label="Equipamento Associado"
value={equipamentos.find(e => e.id === selectedEquipamentoId)?.numSerie || ""}
onChange={(e) => handleEquipamentoChange(e.target.value)}
/>
<div className="quantidade-impressao-section">
<div className="campo quantidade">
<label htmlFor="contador-pb">Contador Preto e Branco</label>
<input
id="contador-pb"
type="number"
<NumberContainer
id="contador-pb-manual"
name="contador-pb-manual"
label="Contador Preto e Branco"
value={quantidadeImpressoesPB}
onChange={(e) => setQuantidadeImpressoesPB(e.target.value)}
min="0"
step="1"
/>
</div>
<div className="campo quantidade">
<label htmlFor="contador-cor">Contador Colorido</label>
<input
id="contador-cor"
type="number"
<NumberContainer
id="contador-cor-manual"
name="contador-cor-manual"
label="Contador Colorido"
value={quantidadeImpressoesCor}
onChange={(e) => setQuantidadeImpressoesCor(e.target.value)}
min="0"
step="1"
disabled={!isColorido}
/>
</div>
</div>
<div className="campo data">
<label htmlFor="data-contadores">Data do Contador</label>
<input
id="data-contadores"
type="date"
<DateContainer
label="Data do Contador"
value={dataContador}
onChange={(e) => setdataContador(e.target.value)}
onChange={(e) => setDataContador(e.target.value)}
/>
</div>
</div>
Expand Down
42 changes: 1 addition & 41 deletions src/style/pages/addcontador.css
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
display: flex;
margin: 0px 30px;
border-bottom: 3px solid #003366;
align-items: flex-end;
align-items: flex-end;
}

.add-contador-header h1 {
Expand All @@ -24,11 +24,6 @@
margin: 20px 30px;
}

.localizacao-section {
margin-bottom: 20px;
padding: 0 30px;
}

.localizacao-section h2 {
font-size: 24px;
color: #0d3d6d;
Expand All @@ -39,7 +34,6 @@
.localizacao-underline,
.fields-underline {
border-bottom: 3px solid #003366;
margin: 0 0 20px;
width: 100%;
max-width: 950px;
}
Expand All @@ -66,40 +60,6 @@
color: #0d3d6d;
}

.select-container select {
padding: 15px;
border: 1px solid #ccc;
border-radius: 8px;
font-size: 18px;
width: 100%;
min-width: 300px;
max-width: 950px;
}

.select-container.equipamento select {
max-width: 300px;
}

.select-container select, .campo input {
padding: 15px;
border: 1px solid #ccc;
border-radius: 8px;
font-size: 18px;
width: 100%;
max-width: 270px;
}

.select-container label {
font-size: 18px;
margin-bottom: 5px;
color: #0d3d6d;
margin-top: 20px;
}

.select-container.equipamento select, .campo.quantidade input, .campo.data input {
max-width: 270px;
}

/* Alinhas os campos de quantidade*/
.quantidade-impressao-section {
display: flex;
Expand Down
Loading

0 comments on commit c296d65

Please sign in to comment.