Skip to content

DateField render props missing direct isRequired unlike other field components #9643

@deebov

Description

@deebov

Description

DateField render props have a different format than the rest of the field components. It doesn't directly pass isRequired in its render props like other field components (TextField, NumberField, etc.) do. Instead, you have to derive it from state.isRequired.

Example

Other field components like TextField and NumberField expose isRequired directly:

<TextField isRequired>
  {({ isRequired, isInvalid }) => (
    <Label isRequired={isRequired}>Name</Label>
  )}
</TextField>

<NumberField isRequired>
  {({ isRequired, isInvalid }) => (
    <Label isRequired={isRequired}>Quantity</Label>
  )}
</NumberField>

But DateField does not — you have to go through state.isRequired:

<DateField isRequired>
  {({ isInvalid, state }) => (
    // isRequired is not directly available, must use state.isRequired
    <Label isRequired={state.isRequired}>Date</Label>
  )}
</DateField>

Expected Behavior

DateField should expose isRequired directly in its render props, consistent with TextField, NumberField, and other field components:

<DateField isRequired>
  {({ isRequired, isInvalid }) => (
    <Label isRequired={isRequired}>Date</Label>
  )}
</DateField>

Impact

This inconsistency makes the API less predictable and harder to use when building generic field wrapper components that need to handle render props uniformly across different field types.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions