24
Composables

Form and Submission Composables

Schema loading, local state, validation schema, and submit workflow APIs.

useFormForgeSchema

Purpose: load a schema and optionally load versions.

const schemaLoader = useFormForgeSchema({
  key: 'contact',
  version: '3',
  immediate: true,
  loadVersions: true
})

Main API:

  • fetchSchema(options?)
  • fetchVersions(options?)
  • refresh(options?)

State:

  • schema
  • versions
  • loading
  • error

useFormForgeGetForm

Purpose: imperative one-shot schema fetch.

const getter = useFormForgeGetForm()
const form = await getter.getForm({ key: 'contact' })

useFormForgeForm

Purpose: schema + reactive state + zod schema.

const form = useFormForgeForm({
  key: 'contact',
  immediate: true
})

Main API:

  • fetchSchema(options?)
  • resetState()
  • setFieldValue(name, value)
  • replaceState(payload)

State:

  • schema
  • state
  • loading
  • initialized
  • error
  • zodSchema

useFormForgeSubmit

Purpose: submit payloads with upload strategy selection.

const submitter = useFormForgeSubmit({
  key: 'contact',
  schema: () => form.schema.value,
  state: () => form.state.value
})

await submitter.submit({
  mode: 'staged',
  test: true,
  meta: {
    source: 'landing-page'
  }
})

Submit options:

  • mode: staged, managed, direct
  • version
  • meta
  • test
  • endpoint
  • scope
  • validateLocal

State:

  • submitting
  • fieldErrors
  • error
  • response

useFormForgeSubmission

Compatibility alias around useFormForgeSubmit.