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! + + + )} +
+