Function: handleSubmit()
handleSubmit(
event
:FormEvent
,properties
: {addMonitorToSite
: (siteId
:string
,monitor
:Monitor
) =>Promise
<void
>;clearError
: () =>void
;createSite
: (siteData
: {identifier
:string
;monitoring?
:boolean
;monitors?
:Monitor
[];name?
:string
; }) =>Promise
<void
>;generateUuid
: () =>string
;logger
:LoggerInterface
;onSuccess?
: () =>void
;setFormError
: (error
:undefined
|string
) =>void
;addMode
:FormMode
;checkInterval
:number
;expectedValue
:string
;formError
:undefined
|string
;host
:string
;monitorType
:"http"
|"port"
|"ping"
|"dns"
;name
:string
;port
:string
;recordType
:string
;selectedExistingSite
:string
;siteId
:string
;url
:string
; }):Promise
<void
>
Defined in: src/components/AddSiteForm/Submit.tsx:406
Handles form submission for adding sites or monitors.
Performs comprehensive validation based on add mode and monitor type:
- For new sites: validates site name and monitor configuration
- For existing sites: validates site selection and monitor configuration
- For HTTP monitors: validates URL format and protocol
- For port monitors: validates host and port number
Parametersโ
eventโ
Form submission event
propertiesโ
Form state, actions, and dependencies
addMonitorToSiteโ
(siteId
: string
, monitor
: Monitor
) => Promise
<void
>
Add a monitor to an existing site
clearErrorโ
() => void
Clear any existing error state
createSiteโ
(siteData
: { identifier
: string
; monitoring?
: boolean
; monitors?
: Monitor
[]; name?
: string
; }) => Promise
<void
>
Create a new site with monitors
generateUuidโ
() => string
UUID generator function for creating unique identifiers
loggerโ
Logger instance for debugging and error tracking
onSuccess?โ
() => void
Optional callback executed after successful submission
setFormErrorโ
(error
: undefined
| string
) => void
Set form error message
addModeโ
Form operation mode (new site vs existing site)
checkIntervalโ
number
Check interval in milliseconds
expectedValueโ
string
Expected DNS record value field for DNS monitors
formErrorโ
undefined
| string
Current form validation error
hostโ
string
Host/IP field for port and DNS monitors
monitorTypeโ
"http"
| "port"
| "ping"
| "dns"
Selected monitor type
nameโ
string
Display name for the site
portโ
string
Port number field for port monitors
recordTypeโ
string
DNS record type field for DNS monitors
selectedExistingSiteโ
string
Selected existing site ID when adding to existing
siteIdโ
string
Generated site identifier
urlโ
string
URL field for HTTP monitors
Returnsโ
Promise
<void
>
Promise that resolves when submission is complete
Exampleโ
const handleFormSubmit = (e: FormEvent) => {
handleSubmit(e, {
...formState,
...formActions,
...storeActions,
generateUuid,
logger,
onSuccess: () => setIsVisible(false),
});
};