PowerSyncForm
Initialization
Section titled “Initialization”PowerSyncForm<Values: FormValues>( schema: ExtendedTable, initialValues: Values? = nil, mode: FormValidationMode = .onChange, visibilityRules: FieldVisibilityRules = FieldVisibilityRules())Validation Modes
Section titled “Validation Modes”enum FormValidationMode { case onChange // Validate on every change case onBlur // Validate when field loses focus case onSubmit // Validate only on submit case onTouched // Validate once field is touched}Properties
Section titled “Properties”var values: Values // Current form valuesvar errors: FormErrors // Form errorsvar isValid: Bool // Is form valid?var isDirty: Bool // Has form been modified?var isSubmitting: Bool // Is form submitting?var visibleFields: Set<String> // Currently visible fieldsBindings
Section titled “Bindings”func binding(for field: String) -> Binding<String>?func bindingWithBlur(for field: String) -> Binding<String>?func intBinding(for field: String) -> Binding<String>?func doubleBinding(for field: String) -> Binding<String>?func boolBinding(for field: String) -> Binding<Bool>?Values
Section titled “Values”func setValue(_ value: Any?, for field: String)func setValues(_ newValues: [String: Any])func getValue(for field: String) -> Any?func getValues() -> [String: Any]func updateValues(_ newValues: [String: Any])func setMode(_ newMode: FormValidationMode)Validation
Section titled “Validation”@discardableResultfunc validate() -> Boolfunc validateField(_ field: String)Submission
Section titled “Submission”func submit(handler: @escaping (Values) -> Void)func submit(handler: @escaping (Values) async throws -> Void) asyncfunc submit() -> Result<Values, FormErrors>func handleSubmit(handler: @escaping (Values) -> Void)func handleSubmit(handler: @escaping (Values) async throws -> Void) asyncField Watching
Section titled “Field Watching”func watch(_ field: String) -> Any?func watch(_ fields: [String]) -> [String: Any?]func watchAll() -> [String: Any?]func shouldShow(_ field: String) -> BoolPowerSync Integration
Section titled “PowerSync Integration”func loadFromPowerSync( recordId: String, service: GenericPowerSyncService, fields: [String]? = nil) async throws
func loadFromPowerSync( recordId: String, tableName: String, userId: String, fields: [String]? = nil) async throws
func loadFromRecord(_ record: [String: Any])Form Actions
Section titled “Form Actions”func reset()func reset(to newValues: Values)func handleBlur(_ field: String)func setMode(_ newMode: FormValidationMode)Error Checking
Section titled “Error Checking”func hasError(_ field: String) -> Boolfunc getError(_ field: String) -> String?func isTouched(_ field: String) -> Boolfunc isBlurred(_ field: String) -> Bool