[material-ui] Refactor ComponentsVariants type into a generic #39623
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.
Refactored
ComponentsVariants
type to accept aTheme
parameter. Doing so makes theComponentsVariants
type share the same signature as the genericComponentsOverrides
type. Since both types are used when overriding a component's style, the callback functions should be identical.The primary use case is for consumers, like myself, who use a custom Theme interface. We do this through augmenting the
createTheme
module, which works fine, except for this one instance. The current implementation type-checks thetheme
parameter correctly in thestyleOverrides
property, but not in thevariants
property. Here is an example that might better explain this:I should also note that the
ComponentsVariants
andComponentsOverrides
types are only used in theComponents
interface (also a generic with a Theme param), so this is a low-risk change imho.