-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Copy link
Labels
DateFieldenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers
Description
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
DateFieldenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers