import React, { useEffect} from 'react';
import Paper from '@material-ui/core/Paper';
import Grid from '@material-ui/core/Grid';
import ButtonBase from '@material-ui/core/ButtonBase';
import Button from '@material-ui/core/Button';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import TextField from '@material-ui/core/TextField';
import Select from '@material-ui/core/Select';
import MenuItem from '@material-ui/core/MenuItem';
import Dialog from '@material-ui/core/Dialog';
import DialogTitle from '@material-ui/core/DialogTitle';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';
import WebhookImage from '../assets/img/webhook.png';
import KafkaImage from '../assets/img/kafka.png';
const Webhooks = (props) => {
const { globalUrl, isLoaded } = props;
const validtypes = ["webhook"]
//const [hooks, setSchedules] = React.useState(hookdata);
const [hooks, setHooks] = React.useState([]);
const [modalOpen, setModalOpen] = React.useState(false);
const [newHookName, setNewHookName] = React.useState("");
const [newHookDescription, setNewHookDescription] = React.useState("");
const [newHookType, setNewHookType] = React.useState("");
const [firstrequest, setFirstrequest] = React.useState(true);
const [, setModalError] = React.useState("");
useEffect(() => {
if (firstrequest) {
setFirstrequest(false)
getAvailableHooks()
}
})
const newHook = () => {
if (newHookName.length === 0) {
setModalError("Missing name in modal")
return
}
if (!validtypes.includes(newHookType)) {
setModalError(newHookType + " is not a valid type. Try this: "+validtypes)
}
fetch(globalUrl+"/api/v1/hooks/new", {
method: "POST",
headers: {"content-type": "application/json"},
body: JSON.stringify({"name": newHookName, "description": newHookDescription, "type": newHookType}),
credentials: "include",
})
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson)
setHooks([])
})
.catch(error => {
console.log(error)
});
}
const getAvailableHooks = () => {
fetch(globalUrl+"/api/v1/hooks", {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
credentials: "include",
})
.then((response) => response.json())
.then((responseJson) => {
setHooks(responseJson)
})
.catch(error => {
console.log(error)
// window.location.pathname = "/"
});
}
const deleteHook = (id) => {
if (id === undefined) {
return
}
fetch(globalUrl+"/api/v1/hooks/"+id+"/delete", {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
credentials: "include",
})
.then((response) => response.json())
.then((responseJson) => {
setHooks([])
})
.catch(error => {
console.log(error)
});
}
const bodyDivStyle = {
marginLeft: "20px",
marginRight: "20px",
width: "1350px",
minWidth: "1350px",
maxWidth: "1350px",
}
const hookApp = (app) => {
// Might be more options, but should be webhook or MQ
const appPicture = app.type === "webhook" ?
:
return(
{app.info.name}