import { Button, Group, NumberInput, Space, TextInput, Notification, Modal } from '@mantine/core'; import { useForm } from '@mantine/hooks'; import React, { useState } from 'react'; import { ServiceAddForm } from '../js/models'; import { addservice, fireUpdateRequest, okNotify } from '../js/utils'; import { ImCross } from "react-icons/im" function AddNewService({ opened, onClose }:{ opened:boolean, onClose:()=>void }) { const form = useForm({ initialValues: { name:"", port:1, }, validationRules:{ name: (value) => value !== ""?true:false, port: (value) => value>0 && value<65536 } }) const close = () =>{ onClose() form.reset() setError(null) } const [submitLoading, setSubmitLoading] = useState(false) const [error, setError] = useState(null) const submitRequest = (values:ServiceAddForm) =>{ setSubmitLoading(true) addservice(values).then( res => { if (!res){ setSubmitLoading(false) close(); fireUpdateRequest(); okNotify(`Service ${values.name} has been added`, `Successfully added ${values.name} with port ${values.port}`) }else{ setSubmitLoading(false) setError("Invalid request! [ "+res+" ]") } }).catch( err => { setSubmitLoading(false) setError("Request Failed! [ "+err+" ]") }) } return
{error?<> } color="red" onClose={()=>{setError(null)}}> Error: {error} :null}
} export default AddNewService;