Skip to main content

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โ€‹

FormEvent

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โ€‹

LoggerInterface

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โ€‹

FormMode

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),
});
};