This commit is contained in:
henrygd
2026-04-27 10:05:58 -04:00
parent e65a4a515e
commit b182b699d7

View File

@@ -1,4 +1,4 @@
import { useRef, useState } from "react" import { useEffect, useRef, useState } from "react"
import { Trans, useLingui } from "@lingui/react/macro" import { Trans, useLingui } from "@lingui/react/macro"
import { useStore } from "@nanostores/react" import { useStore } from "@nanostores/react"
import { pb } from "@/lib/api" import { pb } from "@/lib/api"
@@ -248,7 +248,7 @@ export function AddProbeDialog({ systemId }: { systemId?: string }) {
setOpen(nextOpen) setOpen(nextOpen)
}} }}
> >
{open && <ProbeDialogContent setOpen={setOpen} systemId={systemId} onOpenBulkAdd={openBulkAdd} />} <ProbeDialogContent open={open} setOpen={setOpen} systemId={systemId} onOpenBulkAdd={openBulkAdd} />
</Dialog> </Dialog>
<Sheet <Sheet
@@ -343,17 +343,19 @@ export function EditProbeDialog({
return ( return (
<Dialog open={open} onOpenChange={setOpen}> <Dialog open={open} onOpenChange={setOpen}>
{open && <ProbeDialogContent setOpen={setOpen} systemId={systemId} probe={probe} />} <ProbeDialogContent open={open} setOpen={setOpen} systemId={systemId} probe={probe} />
</Dialog> </Dialog>
) )
} }
function ProbeDialogContent({ function ProbeDialogContent({
open,
setOpen, setOpen,
systemId, systemId,
probe, probe,
onOpenBulkAdd, onOpenBulkAdd,
}: { }: {
open: boolean
setOpen: (open: boolean) => void setOpen: (open: boolean) => void
systemId?: string systemId?: string
probe?: NetworkProbeRecord probe?: NetworkProbeRecord
@@ -374,6 +376,21 @@ function ProbeDialogContent({
const isEditing = !!probe const isEditing = !!probe
const targetName = target.replace(/^https?:\/\//, "") const targetName = target.replace(/^https?:\/\//, "")
// When the dialog is opened, initialize form fields with probe values (if editing) or defaults (if adding).
useEffect(() => {
if (!open) {
return
}
setProtocol(probe?.protocol ?? "icmp")
setTarget(probe?.target ?? "")
setPort((probe?.protocol === "tcp" || probe?.protocol === "http") && probe.port ? String(probe.port) : "")
setProbeInterval(String(probe?.interval ?? 30))
setName(probe?.name ?? "")
setSelectedSystemId(probe?.system ?? "")
setLoading(false)
}, [open, probe])
async function handleSubmit(e: React.FormEvent) { async function handleSubmit(e: React.FormEvent) {
e.preventDefault() e.preventDefault()
setLoading(true) setLoading(true)