TRA-4419 remove headers from OAS select (#936)

This commit is contained in:
AmitUp9 2022-03-28 10:01:57 +03:00 committed by GitHub
parent 0a800e8d8a
commit 10dffd9331
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 71 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@up9/mizu-common", "name": "@up9/mizu-common",
"version": "1.0.141", "version": "1.0.142",
"description": "Made with create-react-library", "description": "Made with create-react-library",
"author": "", "author": "",
"license": "MIT", "license": "MIT",

View File

@ -1,4 +1,4 @@
import { Box, Fade, FormControl, MenuItem, Modal, Backdrop, ListSubheader } from "@material-ui/core"; import { Box, Fade, FormControl, MenuItem, Modal, Backdrop } from "@material-ui/core";
import { useCallback, useEffect, useState } from "react"; import { useCallback, useEffect, useState } from "react";
import { RedocStandalone } from "redoc"; import { RedocStandalone } from "redoc";
import closeIcon from "assets/closeIcon.svg"; import closeIcon from "assets/closeIcon.svg";
@ -7,7 +7,6 @@ import style from './OasModal.module.sass';
import openApiLogo from 'assets/openApiLogo.png' import openApiLogo from 'assets/openApiLogo.png'
import { redocThemeOptions } from "./redocThemeOptions"; import { redocThemeOptions } from "./redocThemeOptions";
import React from "react"; import React from "react";
import { TOAST_CONTAINER_ID } from "../../configs/Consts";
import { Select } from "../UI/Select"; import { Select } from "../UI/Select";
@ -25,68 +24,44 @@ const modalStyle = {
color: '#000', color: '#000',
}; };
const ipAddressWithPortRegex = new RegExp('([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}):([0-9]{1,5})');
const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService }) => { const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService }) => {
const [oasServices, setOasServices] = useState([] as string[]) const [oasServices, setOasServices] = useState([] as string[])
const [selectedServiceName, setSelectedServiceName] = useState(""); const [selectedServiceName, setSelectedServiceName] = useState("");
const [selectedServiceSpec, setSelectedServiceSpec] = useState(null); const [selectedServiceSpec, setSelectedServiceSpec] = useState(null);
const [resolvedServices, setResolvedServices] = useState([]);
const [unResolvedServices, setUnResolvedServices] = useState([]);
const onSelectedOASService = useCallback(async (selectedService) => { const onSelectedOASService = async (selectedService) => {
if (!!selectedService) {
setSelectedServiceName(selectedService);
if (oasServices.length === 0) { if (oasServices.length === 0) {
setSelectedServiceSpec(null);
setSelectedServiceName("");
return return
} }
else {
setSelectedServiceName(selectedService ? selectedService : oasServices[0]);
}
try { try {
const data = await getOasByService(selectedService); const data = await getOasByService(selectedService ? selectedService : oasServices[0]);
setSelectedServiceSpec(data); setSelectedServiceSpec(data);
} catch (e) { } catch (e) {
toast.error("Error occurred while fetching service OAS spec", { containerId: TOAST_CONTAINER_ID }); toast.error("Error occurred while fetching service OAS spec");
console.error(e); console.error(e);
} }
} };
}, [oasServices.length])
const resolvedArrayBuilder = useCallback(async (services) => {
const resServices = [];
const unResServices = [];
services.forEach(s => {
if (ipAddressWithPortRegex.test(s)) {
unResServices.push(s);
}
else {
resServices.push(s);
}
});
resServices.sort();
unResServices.sort();
if (resServices.length > 0) {
onSelectedOASService(resServices[0]);
}
else {
onSelectedOASService(unResServices[0]);
}
setResolvedServices(resServices);
setUnResolvedServices(unResServices);
}, [onSelectedOASService])
useEffect(() => { useEffect(() => {
(async () => { (async () => {
try { try {
const services = await getOasServices(); const services = await getOasServices();
resolvedArrayBuilder(services);
setOasServices(services); setOasServices(services);
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }
})(); })();
}, [openModal, resolvedArrayBuilder]); }, [openModal]);
useEffect(() => {
onSelectedOASService(null);
},[oasServices])
return ( return (
<Modal <Modal
@ -104,8 +79,8 @@ const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService
<Box sx={modalStyle}> <Box sx={modalStyle}>
<div className={style.boxContainer}> <div className={style.boxContainer}>
<div className={style.selectHeader}> <div className={style.selectHeader}>
<div><img src={openApiLogo} alt="openApi" className={style.openApilogo} /></div> <div><img src={openApiLogo} alt="openAPI" className={style.openApilogo} /></div>
<div className={style.title}>OpenApi </div> <div className={style.title}>OpenAPI</div>
</div> </div>
<div style={{ cursor: "pointer" }}> <div style={{ cursor: "pointer" }}>
<img src={closeIcon} alt="close" onClick={handleCloseModal} /> <img src={closeIcon} alt="close" onClick={handleCloseModal} />
@ -119,14 +94,7 @@ const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService
value={selectedServiceName} value={selectedServiceName}
onChangeCb={onSelectedOASService} onChangeCb={onSelectedOASService}
> >
<ListSubheader disableSticky={true}>Resolved</ListSubheader> {oasServices.map((service) => (
{resolvedServices.map((service) => (
<MenuItem key={service} value={service}>
{service}
</MenuItem>
))}
<ListSubheader disableSticky={true}>UnResolved</ListSubheader>
{unResolvedServices.map((service) => (
<MenuItem key={service} value={service}> <MenuItem key={service} value={service}>
{service} {service}
</MenuItem> </MenuItem>

View File

@ -13,7 +13,7 @@
"@types/jest": "^26.0.22", "@types/jest": "^26.0.22",
"@types/node": "^12.20.10", "@types/node": "^12.20.10",
"@uiw/react-textarea-code-editor": "^1.4.12", "@uiw/react-textarea-code-editor": "^1.4.12",
"@up9/mizu-common": "1.0.141", "@up9/mizu-common": "1.0.142",
"axios": "^0.25.0", "axios": "^0.25.0",
"core-js": "^3.20.2", "core-js": "^3.20.2",
"craco-babel-loader": "^1.0.3", "craco-babel-loader": "^1.0.3",

View File

@ -44,7 +44,7 @@ const trafficViewerApi = {...api}
className={commonClasses.outlinedButton + " " + commonClasses.imagedButton} className={commonClasses.outlinedButton + " " + commonClasses.imagedButton}
style={{ marginRight: 25, textTransform: 'unset' }} style={{ marginRight: 25, textTransform: 'unset' }}
onClick={handleOpenOasModal}> onClick={handleOpenOasModal}>
OpenApi Specs OpenAPI Specs
</Button>} </Button>}
{window["isServiceMapEnabled"] && <Button {window["isServiceMapEnabled"] && <Button
startIcon={<img src={serviceMap} className="custom" alt="service-map" style={{marginRight:"8%"}}></img>} startIcon={<img src={serviceMap} className="custom" alt="service-map" style={{marginRight:"8%"}}></img>}