diff --git a/src/components/manifest/ShowDeploymentManifest.tsx b/src/components/manifest/ShowDeploymentManifest.tsx new file mode 100644 index 0000000..d1d4247 --- /dev/null +++ b/src/components/manifest/ShowDeploymentManifest.tsx @@ -0,0 +1,133 @@ +import * as React from 'react'; +import './../components.css'; +import {Button, Card, TextField, Select} from '@material-ui/core'; +import {useOktaAuth} from "@okta/okta-react"; + + +import CloudDownloadIcon from '@material-ui/icons/CloudDownload'; +import Grid from "@material-ui/core/Grid"; +import MenuItem from "@material-ui/core/MenuItem"; +import MenuAppBar from '../layout/Header'; + +function exportToJsonFile(jsonData:any) { + let dataStr = JSON.stringify(jsonData); + let dataUri = 'data:application/json;charset=utf-8,' + encodeURIComponent(dataStr); + let exportFileDefaultName = jsonData.name + '_data.json'; + let linkElement = document.createElement('a'); + linkElement.setAttribute('href', dataUri); + linkElement.setAttribute('download', exportFileDefaultName); + linkElement.click(); +} + +export const PrettyPrintJson = (props: any) => { + const download = () => { + exportToJsonFile(props.manifestData); + props.onClose(); + }; + return ( + + {props.show ? + : + <>

Manifest File

+ + } +
+

{JSON.stringify(props.manifestData, null, 2)}

+
+
+ ) +}; + +const ShowDeploymentManifest = () => { + const {useState} = React; + const [manifestData, setManifestData] = useState({}); + const [serviceName, setServiceName] = useState(''); + const [environment, setEnvironment] = useState(''); + + const [isLoading, setIsLoading] = useState(false); + + const {authState} = useOktaAuth(); + + function handleClick() { + + if (authState.isAuthenticated) { + console.log("...." + serviceName + environment); + const {idToken} = authState; + fetch( + `http://localhost:9090/manifest/${serviceName}/${environment}`, + { + method: 'GET', + headers: { + Authorization: `Bearer ${idToken}`, + } + }, + ) + .then((res) => res.json()) + .then((response) => { + setManifestData(response.data); + }) + .catch((error) => console.log(error)); + } + setIsLoading(true); + } + + + function handleEnvChange(e:any) { + setEnvironment(e.target.value); + } + + function handleNameChange(e:any) { + setServiceName(e.target.value); + } + + return ( +
+ +
+ + + + + + + + +
+ {isLoading ? + setIsLoading(false)}/> : + + } + +
+
+ ); +}; + +export default ShowDeploymentManifest;