import { Box, Fade, FormControl, MenuItem, Modal, Backdrop } from "@material-ui/core"; import { useCallback, useEffect, useState } from "react"; import { RedocStandalone } from "redoc"; import closeIcon from "assets/closeIcon.svg"; import { toast } from 'react-toastify'; import style from './OasModal.module.sass'; import openApiLogo from 'assets/openApiLogo.png' import { redocThemeOptions } from "./redocThemeOptions"; import React from "react"; import { Select } from "../UI/Select"; import { TOAST_CONTAINER_ID } from "../../configs/Consts"; const modalStyle = { position: 'absolute', top: '6%', left: '50%', transform: 'translate(-50%, 0%)', width: '89vw', height: '82vh', bgcolor: 'background.paper', borderRadius: '5px', boxShadow: 24, p: 4, color: '#000', }; const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService }) => { const [oasServices, setOasServices] = useState([] as string[]) const [selectedServiceName, setSelectedServiceName] = useState(""); const [selectedServiceSpec, setSelectedServiceSpec] = useState(null); const onSelectedOASService = async (selectedService) => { if (oasServices.length === 0) { setSelectedServiceSpec(null); setSelectedServiceName(""); return } else { setSelectedServiceName(selectedService ? selectedService : oasServices[0]); } try { const data = await getOasByService(selectedService ? selectedService : oasServices[0]); setSelectedServiceSpec(data); } catch (e) { toast.error("Error occurred while fetching service OAS spec", { containerId: TOAST_CONTAINER_ID }); console.error(e); } }; useEffect(() => { (async () => { try { const services = await getOasServices(); setOasServices(services); } catch (e) { console.error(e); } })(); }, [openModal]); useEffect(() => { onSelectedOASService(null); }, [oasServices]) return (
openAPI
Service Catalog
close
{selectedServiceSpec && }
); }; export default OasModal;