Skip to content

Commit cb26f73

Browse files
authored
fix(react): adding href prop when routerLink is specified (ionic-team#19481)
1 parent a02319b commit cb26f73

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

packages/react/src/components/createComponent.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ interface IonicReactInternalProps<ElementType> extends React.HTMLAttributes<Elem
1717

1818
export const createReactComponent = <PropType, ElementType>(
1919
tagName: string,
20-
hrefComponent = false
20+
routerLinkComponent = false
2121
) => {
2222
const displayName = dashToPascalCase(tagName);
2323
const ReactComponent = class extends React.Component<IonicReactInternalProps<PropType>> {
@@ -41,7 +41,7 @@ export const createReactComponent = <PropType, ElementType>(
4141
attachEventProps(node, this.props, prevProps);
4242
}
4343

44-
private handleClick = (e: MouseEvent) => {
44+
private handleClick = (e: React.MouseEvent<PropType>) => {
4545
const { routerLink, routerDirection } = this.props;
4646
if (routerLink !== undefined) {
4747
e.preventDefault();
@@ -62,16 +62,19 @@ export const createReactComponent = <PropType, ElementType>(
6262
return acc;
6363
}, {});
6464

65-
const newProps: any = {
65+
const newProps: IonicReactInternalProps<PropType> = {
6666
...propsToPass,
6767
ref: forwardedRef,
6868
style
6969
};
7070

71-
if (hrefComponent) {
71+
if (routerLinkComponent) {
72+
if (this.props.routerLink && !this.props.href) {
73+
newProps.href = this.props.routerLink;
74+
}
7275
if (newProps.onClick) {
7376
const oldClick = newProps.onClick;
74-
newProps.onClick = (e: MouseEvent) => {
77+
newProps.onClick = (e: React.MouseEvent<PropType>) => {
7578
oldClick(e);
7679
if (!e.defaultPrevented) {
7780
this.handleClick(e);

0 commit comments

Comments
 (0)