feat(react): add generic type parameter to useIonModal and useIonPopover#31182
Open
EduardF1 wants to merge 1 commit into
Open
feat(react): add generic type parameter to useIonModal and useIonPopover#31182EduardF1 wants to merge 1 commit into
EduardF1 wants to merge 1 commit into
Conversation
Add overloaded function signatures to useIonModal and useIonPopover so that TypeScript can infer componentProps type from the component argument. When a React ComponentClass or FC is provided, componentProps is typed as that component's props type (P). When a JSX.Element is passed, any is used to preserve existing behaviour. The default for P remains any to avoid breaking changes. Resolves ionic-team#28680 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
@EduardF1 is attempting to deploy a commit to the Ionic Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Adds generic type parameters to
useIonModalanduseIonPopoverso TypeScript can infer the correct type forcomponentPropsbased on the component argument.Motivation
Currently both hooks accept
componentProps?: any, providing no type safety. This causes undetected typos in prop names and incorrect types at compile time.Changes
useIonModalanduseIonPopovernow have two overloaded signatures:React.ComponentClass<T>orReact.FC<T>is passed,componentPropsis typed asTJSX.Elementis passed,componentPropsremainsany(component: ReactComponentOrElement, componentProps?: any)for backward compatibility// TODO(FW-2959): typescomment is removed as this resolves that TODORecord<string, any>to preserve backward compatibility when no generic is specifiedTesting
No runtime behavior changes — this is a type-only change. Existing tests should continue to pass.
Closes #28680