import { Button, Group, Space, Modal, Switch } from '@mantine/core'; import { useEffect, useState } from 'react'; import { errorNotify, okNotify } from '../../js/utils'; import { FirewallSettings, firewall } from '../../components/Firewall/utils'; export function SettingsModal({ opened, onClose }:{ opened:boolean, onClose:()=>void }) { const [settings, setSettings] = useState({keep_rules:false, allow_established:true, allow_loopback:true, allow_icmp:true}) useEffect(()=>{ firewall.settings().then( res => { setSettings(res) }).catch( err => { errorNotify("Setting fetch failed!", err.toString()) onClose() }) },[]) const [submitLoading, setSubmitLoading] = useState(false) const submitRequest = () =>{ setSubmitLoading(true) firewall.setsettings(settings).then( () => { okNotify("Settings updated!", "Settings updated successfully") setSubmitLoading(false) onClose() }).catch( err => { errorNotify("Settings update failed!", err.toString()) setSubmitLoading(false) }) } return setSettings({...settings, keep_rules:v.target.checked})}/> setSettings({...settings, allow_loopback:v.target.checked})}/> setSettings({...settings, allow_established:v.target.checked})}/> setSettings({...settings, allow_icmp:v.target.checked})}/> }