Handles all form events for MishkaGervaz.
This module centralizes event handling for:
- Validation (phx-change)
- Submission (phx-submit)
- Wizard step navigation
- Upload events
- Relation field search/select
- Cancel
- Nested/array field management
Sub-builders
Events functionality is split into specialized sub-builders:
SanitizationHandler- Input sanitizationValidationHandler- Form validationSubmitHandler- Form submissionStepHandler- Wizard step navigationUploadHandler- File upload eventsRelationHandler- Relation field search/selectHookRunner- Hook execution
Customization
You can override individual sub-builders via DSL:
mishka_gervaz do
form do
events do
sanitization MyApp.CustomSanitizationHandler
validation MyApp.CustomValidationHandler
submit MyApp.CustomSubmitHandler
step MyApp.CustomStepHandler
upload MyApp.CustomUploadHandler
hooks MyApp.CustomHookRunner
end
end
endOr override the entire Events module:
mishka_gervaz do
form do
events MyApp.CustomFormEvents
end
endSee MishkaGervaz.Form.Web.Events.Helpers (shared helpers exposed to
sub-handlers and user overrides), MishkaGervaz.Form.Web.State,
MishkaGervaz.Form.Web.DataLoader,
MishkaGervaz.Form.Web.Live, and the sub-handlers
SanitizationHandler, ValidationHandler, SubmitHandler,
StepHandler, UploadHandler, RelationHandler, HookRunner.
Summary
Types
@type socket() :: Phoenix.LiveView.Socket.t()
@type state() :: MishkaGervaz.Form.Web.State.t()