From 354325ec3b65f1111e32be789eb60c897a93ad2a Mon Sep 17 00:00:00 2001 From: Algusto-RC Date: Wed, 13 Dec 2023 23:45:53 -0300 Subject: [PATCH] Melhorias no front --- frontend/src/pages/EnrollmentRequest/index.js | 149 ++++++++++++++++++ .../src/pages/EnrollmentRequest/styles.js | 68 ++++++++ frontend/src/pages/Home/index.js | 19 ++- frontend/src/pages/Recommendations/index.js | 2 +- frontend/src/routes/index.js | 7 + 5 files changed, 240 insertions(+), 5 deletions(-) create mode 100644 frontend/src/pages/EnrollmentRequest/index.js create mode 100644 frontend/src/pages/EnrollmentRequest/styles.js diff --git a/frontend/src/pages/EnrollmentRequest/index.js b/frontend/src/pages/EnrollmentRequest/index.js new file mode 100644 index 00000000..1bf52e1e --- /dev/null +++ b/frontend/src/pages/EnrollmentRequest/index.js @@ -0,0 +1,149 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; +import { ChakraProvider, useDisclosure } from '@chakra-ui/react'; +import Header from "../../components/Header/index.js"; +import Footer from "../../components/Footer/index.js"; + +import { + Box, + Flex, + Heading, + Table, + Thead, + Tbody, + Tr, + Th, + Td, + Button, + AlertDialog, + AlertDialogOverlay, + AlertDialogContent, + AlertDialogHeader, + AlertDialogBody, + AlertDialogFooter, + Container, + Alert, + AlertIcon, + Select +} from "@chakra-ui/react"; + +const EnrollmentRequest = () => { + const [eletivas, setEletivas] = useState([]); + const [eletivasPorTrilha, setEletivasPorTrilha] = useState({}); + const [descricaoEletiva, setDescricaoEletiva] = useState(''); + const { isOpen, onOpen, onClose } = useDisclosure(); + const cancelRef = React.useRef(); + const [showAlert, setShowAlert] = useState(false); + + useEffect(() => { + async function fetchEletivas() { + try { + const response = await axios.get('http://localhost:3001/eletivas'); + setEletivas(response.data); + + const eletivasMap = {}; + response.data.forEach((eletiva) => { + eletivasMap[eletiva.id] = eletiva.related_trilhas || []; + }); + setEletivasPorTrilha(eletivasMap); + } catch (error) { + console.error('Erro ao buscar eletivas:', error); + } + } + fetchEletivas(); + }, []); + + const getStatus = (eletivaId) => { + return eletivaId % 2 === 0 ? 'Homologado' : 'Não homologado'; + }; + + const handleVerDescricaoClick = (descricao) => { + setDescricaoEletiva(descricao); + onOpen(); + }; + + return ( + + +
+ + + + Eletivas Disponíveis + + + + + + + + + + + {eletivas.map((eletiva) => ( + + + + + + ))} + +
DisciplinaStatusEletivas relacionadas
{eletiva.name}{getStatus(eletiva.id)} + +
+ + + + + Descrição da Eletiva + + + {descricaoEletiva} + + + + + + + +
+ {showAlert && ( + + + + Eletivas carregadas com sucesso! + + + )} +
+