Include full record in <AutocompleteInput>
and <AutocompleteArrayInput>
's onChange
#9245
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.
Problem
If we want to react to a change in
<AutocompleteInput>
's value, all we can have inonChange
is the selected value (i.e. its id in most cases).If we want to use another field of the selected record, we first need to fetch the record by its id (for instance using
useGetOne
), which is cumbersome, especially knowing the full record is already available in the ChoicesContext.Solution
Add a second argument to
onChange
to pass the full record, which allows the developer to use any field of it.Technical details
<AutocompleteArrayInput>
<SelectInput>
nor in<SelectArrayInput>
, because they both rely on HTML's<select>
, which only provides the option'svalue
inevent.target.value
. It may be still doable by using the ChoicesContext, but I didn't manage to do it for now.Screencasts
Capture.video.2023-09-05.16.54.31.mp4