← All examplesFlows

Headless custom controls

Render state yourself and import the hook from the headless entry.

Custom, headless controls

The headless hook exposes state and results; the app supplies this button and status UI.

Status: idle

CodeFocused snippet
import { useSubmitFlow } from 'react-submit-flow/headless'

<button disabled={flow.isBusy} onClick={() => void flow.run('save', input)}>
  {flow.isBusy ? 'Saving…' : 'Save'}
</button>

Read the related guide →

This demo uses a local, temporary action. It does not send data or write to a service.