import { ActionIcon, Grid, LoadingOverlay, Space, Title, Tooltip } from '@mantine/core'; import React, { useEffect, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import RegexView from '../../components/NFRegex/RegexView'; import ServiceRow from '../../components/NFRegex/ServiceRow'; import AddNewRegex from '../../components/NFRegex/AddNewRegex'; import { BsPlusLg } from "react-icons/bs"; import { RegexFilter, Service } from '../../js/models'; import { errorNotify, eventUpdateName, fireUpdateRequest, nfregex } from '../../js/utils'; import { useWindowEvent } from '@mantine/hooks'; function ServiceDetails() { const {srv} = useParams() const [serviceInfo, setServiceInfo] = useState({ service_id: "", port:0, n_packets:0, n_regex:0, name:"", status:"🤔", ip_int: "", proto: "tcp", }) const [regexesList, setRegexesList] = useState([]) const [loader, setLoader] = useState(true); const [open, setOpen] = useState(false); const closeModal = () => {setOpen(false);updateInfo();} const updateInfo = async () => { if (!srv) return let error = false; await nfregex.serviceinfo(srv).then(res => { setServiceInfo(res) }).catch( err =>{ error = true; navigator("/") }) if (error) return await nfregex.serviceregexes(srv).then(res => { setRegexesList(res) }).catch( err => errorNotify(`Updater for ${srv} service failed [Regex list]!`, err.toString()) ) setLoader(false) } useWindowEvent(eventUpdateName, updateInfo) useEffect(fireUpdateRequest,[]) const navigator = useNavigate() const [tooltipAddRegexOpened, setTooltipAddRegexOpened] = useState(false); return <> {regexesList.length === 0?<> No regex found for this service! Add one by clicking the "+" buttons
setOpen(true)} size="xl" radius="md" variant="filled" aria-describedby="tooltip-AddRegex-id" onFocus={() => setTooltipAddRegexOpened(false)} onBlur={() => setTooltipAddRegexOpened(false)} onMouseEnter={() => setTooltipAddRegexOpened(true)} onMouseLeave={() => setTooltipAddRegexOpened(false)}>
: {regexesList.map( (regexInfo) => )} } {srv?:null} } export default ServiceDetails;