Form / foldkit-mixins-form

RenderContext

interface · packages/mixins-form/src/index.ts:334

interface RenderContext<Message> {
  readonly input: FieldInput
  readonly control: Control
  readonly draft: Draft
  readonly change: (value: Draft) => Message
  readonly blurred: Message
  readonly bundle:
    | {
        readonly model: unknown
        readonly send: (message: unknown) => Message
        readonly viewInputs: unknown
      }
    | undefined
  readonly state: ReadonlyArray<Attribute<Message>>
  readonly attrs: FieldAttrs
  readonly slots: SlotBuilders<typeof FieldSlots, Message>
  readonly h: HtmlBuilder<Message>
}

What a renderer draws one control from.

Members

RenderContext.input

property · packages/mixins-form/src/index.ts:335

readonly input: FieldInput

RenderContext.control

property · packages/mixins-form/src/index.ts:337

readonly control: Control

The control, whose data is its kind's: narrow it with the kind's is.

RenderContext.draft

property · packages/mixins-form/src/index.ts:338

readonly draft: Draft

RenderContext.change

property · packages/mixins-form/src/index.ts:339

readonly change: (value: Draft) => Message

RenderContext.blurred

property · packages/mixins-form/src/index.ts:340

readonly blurred: Message

RenderContext.bundle

property · packages/mixins-form/src/index.ts:345

readonly bundle:
  | {
      readonly model: unknown
      readonly send: (message: unknown) => Message
      readonly viewInputs: unknown
    }
  | undefined

For a control backed by a Bundle: its Model, and the Message carrying one of its own. Its draft is ''.

RenderContext.state

property · packages/mixins-form/src/index.ts:354

readonly state: ReadonlyArray<Attribute<Message>>

The control's id and its accessibility state. Put them on the element that holds the value.

RenderContext.attrs

property · packages/mixins-form/src/index.ts:356

readonly attrs: FieldAttrs

What the key's element takes beyond the base field view.

RenderContext.slots

property · packages/mixins-form/src/index.ts:357

readonly slots: SlotBuilders<typeof FieldSlots, Message>

RenderContext.h

property · packages/mixins-form/src/index.ts:358

readonly h: HtmlBuilder<Message>