Remove cloneElement
in list actions and bulk actions
#9707
Merged
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
Wenever we use
cloneElement
, developers find it hard to swap the component with their own as they don't know which props are injected.Solution
Remove
cloneElement
and make child elements pull data from the context.Applied to List components.
Note: there are still some
cloneElement
to support the deprecated<List filters={<Filter>...</Filter>} />
syntax (instead of<List filters={[...]} />
). The discussion is open to determine if we should remove those.<List hasCreate>
Is No Longer SupportedTo force a List view to display a Create button even though the corresponding resource doesn't have a
create
component, pass a custom actions component to the List component:Updates to
bulkActionButtons
SyntaxThe
bulkActionButtons
prop has been moved from the<List>
component to the<Datagrid>
component.Besides, the buttons passed as
bulkActionButtons
no longer receive any prop. If you need the current filter values or the selected ids, you'll have to use theuseListContext
hook: