feat: types custom component props #11894
Draft
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.
Edit: After thinking about this more, I think the component-level types should be deprecated in favor of direct props.
Reasons:
FieldLabelClientComponent
and has become an awful patternThis feels like a mistake. Should have never been written this way. Encouraging the use of props directly eliminates all of this.
Here's the previous description of this PR if anyone is curious:
When creating custom fields and injecting custom props, it is currently not possible to have those props typed within the base fields types that Payload provides.
For example:
In your component definition,
customProp
does not exist on theTextFieldServerComponent
type:Currently, to do this you'd need to use the prop types directly:
With this change you could define the custom props on the component-level type by passing it as a generic: