[react/form] Fix Form.Message not being able to be used outside a Form.Field #3044
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Closes: #2279
This PR regards an issue where users receive an error when using
Form.Message
outside of aForm.Field
, even when following the documentation and specifying thename
prop.The Problem
The root cause is in the
useContext
hook withincreateContext.tsx
, which throws an error immediately upon detecting a missing context.The Changes
This PR introduces the following changes to try and solve that:
Enhances the
useContext
hook increateContext.tsx
:options
object parameter with anisOptional
propImproves
FormMessage
implementation:Field.Message
to aForm.Field
when availableForm.Field
context and name prop are absent.Updates Form.stories.tsx:
Form.Message
usage to be out of context, enabling Cypress tests to also check for this scenario.