diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 8f1dccb8a17..2732a5c693c 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -18,12 +18,11 @@ "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-typescript": "^11.1.5", "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "^12.1.5", - "@testing-library/react-hooks": "^7.0.1", + "@testing-library/react": "~13.4.0", "@types/jest": "^26.0.15", "@types/node": "^14.0.14", - "@types/react": "^17.0.79", - "@types/react-dom": "^17.0.25", + "@types/react": "~18.3.28", + "@types/react-dom": "~18.3.7", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "eslint": "^7.32.0", @@ -32,8 +31,8 @@ "jest-environment-jsdom": "^29.7.0", "np": "^6.4.0", "prettier": "^2.8.3", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "~18.3.1", + "react-dom": "~18.3.1", "rimraf": "^3.0.2", "rollup": "^4.2.0", "ts-jest": "^29.1.3", @@ -99,6 +98,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", @@ -801,6 +801,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "4.33.0", "@typescript-eslint/types": "4.33.0", @@ -1960,50 +1961,22 @@ } }, "node_modules/@testing-library/react": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", - "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" }, "engines": { "node": ">=12" }, "peerDependencies": { - "react": "<18.0.0", - "react-dom": "<18.0.0" - } - }, - "node_modules/@testing-library/react-hooks": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz", - "integrity": "sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@types/react": ">=16.9.0", - "@types/react-dom": ">=16.9.0", - "@types/react-test-renderer": ">=16.9.0", - "react-error-boundary": "^3.1.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0", - "react-test-renderer": ">=16.9.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-test-renderer": { - "optional": true - } + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@tootallnate/once": { @@ -2208,32 +2181,25 @@ "dev": true }, "node_modules/@types/react": { - "version": "17.0.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.79.tgz", - "integrity": "sha512-gavKA8AwJAML9zWHuiQRASjrrPJHbT/zrUDHiUGUf+l5a3pkEd6atvjjq+8y2vfRHBJLQJjFpxSa9I8qe9zHAw==", + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-dom": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", - "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", - "dev": true, - "dependencies": { - "@types/react": "^17" - } - }, - "node_modules/@types/react-test-renderer": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.5.tgz", - "integrity": "sha512-PsnmF4Hpi61PTRX+dTxkjgDdtZ09kFFgPXczoF+yBfOVxn7xBLPvKP1BUrSasYHmerj33rhoJuvpIMsJuyRqHw==", + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "dev": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/responselike": { @@ -2245,12 +2211,6 @@ "@types/node": "*" } }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "dev": true - }, "node_modules/@types/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", @@ -2457,6 +2417,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -2618,6 +2579,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3249,6 +3211,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001646", "electron-to-chromium": "^1.5.4", @@ -3809,10 +3772,11 @@ "dev": true }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" }, "node_modules/data-urls": { "version": "3.0.2", @@ -4473,6 +4437,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -6693,6 +6658,7 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -9867,6 +9833,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -10077,46 +10044,32 @@ } }, "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-boundary": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", - "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "react": ">=16.13.1" + "react": "^18.3.1" } }, "node_modules/react-is": { @@ -10391,6 +10344,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.3.0.tgz", "integrity": "sha512-scIi1NrKLDIYSPK66jjECtII7vIgdAMFmFo8h6qm++I6nN9qDSV35Ku6erzGVqYjx+lj+j5wkusRMr++8SyDZg==", "dev": true, + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -10515,13 +10469,13 @@ } }, "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dev": true, + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "node_modules/scoped-regex": { @@ -11393,6 +11347,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/packages/react/package.json b/packages/react/package.json index 50b178266bd..2e61e7f3804 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -53,12 +53,11 @@ "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-typescript": "^11.1.5", "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "^12.1.5", - "@testing-library/react-hooks": "^7.0.1", + "@testing-library/react": "~13.4.0", "@types/jest": "^26.0.15", "@types/node": "^14.0.14", - "@types/react": "^17.0.79", - "@types/react-dom": "^17.0.25", + "@types/react": "~18.3.28", + "@types/react-dom": "~18.3.7", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "eslint": "^7.32.0", @@ -67,8 +66,8 @@ "jest-environment-jsdom": "^29.7.0", "np": "^6.4.0", "prettier": "^2.8.3", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "~18.3.1", + "react-dom": "~18.3.1", "rimraf": "^3.0.2", "rollup": "^4.2.0", "ts-jest": "^29.1.3", diff --git a/packages/react/src/components/IonIcon.tsx b/packages/react/src/components/IonIcon.tsx index a873f3c4577..cf02827e838 100644 --- a/packages/react/src/components/IonIcon.tsx +++ b/packages/react/src/components/IonIcon.tsx @@ -21,6 +21,7 @@ interface IonIconProps { type InternalProps = IonIconProps & { forwardedRef?: React.ForwardedRef; + children: React.ReactNode; }; class IonIconContainer extends React.PureComponent { diff --git a/packages/react/src/components/IonPage.tsx b/packages/react/src/components/IonPage.tsx index 6b0b05b5be6..67e6dadfbec 100644 --- a/packages/react/src/components/IonPage.tsx +++ b/packages/react/src/components/IonPage.tsx @@ -11,6 +11,7 @@ interface IonPageProps extends IonicReactProps {} interface IonPageInternalProps extends IonPageProps { forwardedRef?: React.ForwardedRef; + children: React.ReactNode; } class IonPageInternal extends React.Component { diff --git a/packages/react/src/components/IonRouterOutlet.tsx b/packages/react/src/components/IonRouterOutlet.tsx index d7c75b13189..d5eba02dd3f 100644 --- a/packages/react/src/components/IonRouterOutlet.tsx +++ b/packages/react/src/components/IonRouterOutlet.tsx @@ -16,6 +16,7 @@ type Props = LocalJSX.IonRouterOutlet & { interface InternalProps extends Props { forwardedRef?: React.ForwardedRef; + children: React.ReactNode; } // eslint-disable-next-line @typescript-eslint/no-empty-interface diff --git a/packages/react/src/components/createControllerComponent.tsx b/packages/react/src/components/createControllerComponent.tsx index 15688a7f3b9..63631caf130 100644 --- a/packages/react/src/components/createControllerComponent.tsx +++ b/packages/react/src/components/createControllerComponent.tsx @@ -122,6 +122,6 @@ export const createControllerComponent = ((props, ref) => { - return ; + return ; }); }; diff --git a/packages/react/src/components/createOverlayComponent.tsx b/packages/react/src/components/createOverlayComponent.tsx index 701d8b8214e..7109685c462 100644 --- a/packages/react/src/components/createOverlayComponent.tsx +++ b/packages/react/src/components/createOverlayComponent.tsx @@ -139,6 +139,6 @@ export const createOverlayComponent = ((props, ref) => { - return ; + return ; }); }; diff --git a/packages/react/src/components/navigation/IonNav.tsx b/packages/react/src/components/navigation/IonNav.tsx index 8d2ca03e3ae..7859b311f10 100644 --- a/packages/react/src/components/navigation/IonNav.tsx +++ b/packages/react/src/components/navigation/IonNav.tsx @@ -15,6 +15,7 @@ const IonNavInner = createReactComponent; + children?: React.ReactNode; }; // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/react/src/components/navigation/IonTabBar.tsx b/packages/react/src/components/navigation/IonTabBar.tsx index 124b00f6990..3f25e697963 100644 --- a/packages/react/src/components/navigation/IonTabBar.tsx +++ b/packages/react/src/components/navigation/IonTabBar.tsx @@ -24,6 +24,7 @@ interface InternalProps extends IonTabBarProps { onSetCurrentTab: (tab: string, routeInfo: RouteInfo) => void; routeInfo: RouteInfo; tabsContext?: IonTabsContextState; + children?: React.ReactNode; } interface TabUrls { diff --git a/packages/react/src/components/navigation/IonTabs.tsx b/packages/react/src/components/navigation/IonTabs.tsx index 445c1f3a714..b8d5a25566f 100644 --- a/packages/react/src/components/navigation/IonTabs.tsx +++ b/packages/react/src/components/navigation/IonTabs.tsx @@ -42,7 +42,7 @@ type ChildFunction = (ionTabContext: IonTabsContextState) => React.ReactNode; interface Props extends LocalJSX.IonTabs { className?: string; - children: ChildFunction | React.ReactNode; + children: React.ReactNode; onIonTabsWillChange?: (event: CustomEvent<{ tab: string }>) => void; onIonTabsDidChange?: (event: CustomEvent<{ tab: string }>) => void; } diff --git a/packages/react/src/components/react-component-lib/createComponent.tsx b/packages/react/src/components/react-component-lib/createComponent.tsx index 7c7415a29d8..d2c15574cfc 100644 --- a/packages/react/src/components/react-component-lib/createComponent.tsx +++ b/packages/react/src/components/react-component-lib/createComponent.tsx @@ -80,6 +80,7 @@ export const createReactComponent = < ...propsToPass, ref: mergeRefs(forwardedRef, this.setComponentElRef), style, + children }; /** diff --git a/packages/react/src/components/react-component-lib/createOverlayComponent.tsx b/packages/react/src/components/react-component-lib/createOverlayComponent.tsx index 288c38dd54c..c1e371f5706 100644 --- a/packages/react/src/components/react-component-lib/createOverlayComponent.tsx +++ b/packages/react/src/components/react-component-lib/createOverlayComponent.tsx @@ -137,6 +137,6 @@ export const createOverlayComponent = ((props, ref) => { - return ; + return ; }); }; diff --git a/packages/react/src/components/react-component-lib/utils/index.tsx b/packages/react/src/components/react-component-lib/utils/index.tsx index a66bd02de76..591cf175665 100644 --- a/packages/react/src/components/react-component-lib/utils/index.tsx +++ b/packages/react/src/components/react-component-lib/utils/index.tsx @@ -30,7 +30,7 @@ export const mergeRefs = ( export const createForwardRef = (ReactComponent: any, displayName: string) => { const forwardRef = ( - props: StencilReactExternalProps, + props: React.PropsWithoutRef>, ref: StencilReactForwardedRef ) => { return ; diff --git a/packages/react/src/components/utils/index.tsx b/packages/react/src/components/utils/index.tsx index f399802cd14..36a3ef6c915 100644 --- a/packages/react/src/components/utils/index.tsx +++ b/packages/react/src/components/utils/index.tsx @@ -5,22 +5,17 @@ import React from 'react'; import type { IonicReactProps } from '../IonicReactProps'; export type IonicReactExternalProps = PropType & - /** - * TODO: FW-5753 - * - * The `placeholder` property was removed from `HTMLAttributes` in @types/react@18.2.43 - * https://github.com/DefinitelyTyped/DefinitelyTyped/commit/b954269038de46b4b2f1756a9f2f020cbc66a326 - * - * This is a temporary workaround until @ionic/react is updated to >=18.2.43. - */ - Omit, 'style' | 'placeholder'> & + Omit, 'style'> & IonicReactProps; export const createForwardRef = ( ReactComponent: any, // TODO(FW-2959): type displayName: string ) => { - const forwardRef = (props: IonicReactExternalProps, ref: React.ForwardedRef) => { + const forwardRef = ( + props: React.PropsWithoutRef>, + ref: React.ForwardedRef + ) => { return ; }; forwardRef.displayName = displayName; diff --git a/packages/react/src/routing/NavManager.tsx b/packages/react/src/routing/NavManager.tsx index 27396947800..3f59f89fd5f 100644 --- a/packages/react/src/routing/NavManager.tsx +++ b/packages/react/src/routing/NavManager.tsx @@ -34,6 +34,7 @@ interface NavManagerProps { ionRoute: any; stackManager: any; locationHistory: LocationHistory; + children: React.ReactNode; } export class NavManager extends React.PureComponent { diff --git a/packages/react/src/routing/OutletPageManager.tsx b/packages/react/src/routing/OutletPageManager.tsx index 0e0d1f9ea08..4f0726d4c69 100644 --- a/packages/react/src/routing/OutletPageManager.tsx +++ b/packages/react/src/routing/OutletPageManager.tsx @@ -10,6 +10,7 @@ import { StackContext } from './StackContext'; interface OutletPageManagerProps { className?: string; forwardedRef?: React.ForwardedRef; + children: React.ReactNode; routeInfo?: RouteInfo; StackManager: any; // TODO(FW-2959): type } diff --git a/packages/react/src/routing/PageManager.tsx b/packages/react/src/routing/PageManager.tsx index 19a184a6364..3918fd4e867 100644 --- a/packages/react/src/routing/PageManager.tsx +++ b/packages/react/src/routing/PageManager.tsx @@ -9,6 +9,7 @@ import { StackContext } from './StackContext'; interface PageManagerProps { className?: string; forwardedRef?: React.ForwardedRef; + children: React.ReactNode; routeInfo?: RouteInfo; } diff --git a/packages/react/src/routing/ViewLifeCycleManager.tsx b/packages/react/src/routing/ViewLifeCycleManager.tsx index 78b83f295a4..30564db4486 100644 --- a/packages/react/src/routing/ViewLifeCycleManager.tsx +++ b/packages/react/src/routing/ViewLifeCycleManager.tsx @@ -5,6 +5,7 @@ import { DefaultIonLifeCycleContext, IonLifeCycleContext } from '../contexts/Ion interface ViewTransitionManagerProps { removeView: () => void; mount: boolean; + children: React.ReactNode; } interface ViewTransitionManagerState {