From 9c1d5cbf1282571017f32cdbe29420d6881ee02c Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Fri, 23 Oct 2026 19:07:45 -0700 Subject: [PATCH 1/2] Remove propTypes of exported Composer, ReactWebChat and FullComposer The propTypes statics of the exported function components made the emitted .d.ts import 'prop-types'. @types/react@19 no longer depends on @types/prop-types, so consumers with skipLibCheck: false got TS7016. Their inner components (ComposerCore, ComposerWithStore) keep their propTypes and receive the same props; className and role are validated by BasicWebChat. React 19 ignores propTypes. Part of #5552 --- packages/api/src/hooks/Composer.tsx | 7 ------- packages/bundle/src/FullComposer.tsx | 10 +--------- packages/component/src/Composer.tsx | 6 ------ packages/component/src/ReactWebChat.tsx | 13 ------------- 4 files changed, 1 insertion(+), 35 deletions(-) diff --git a/packages/api/src/hooks/Composer.tsx b/packages/api/src/hooks/Composer.tsx index c3a8ef9927..11678f3d22 100644 --- a/packages/api/src/hooks/Composer.tsx +++ b/packages/api/src/hooks/Composer.tsx @@ -857,13 +857,6 @@ const Composer = ({ internalRenderErrorBox, onTelemetry, ponyfill, styleOptions, ); }; -Composer.propTypes = { - ...ComposerWithStore.propTypes, - internalRenderErrorBox: PropTypes.any, - onTelemetry: PropTypes.func, - ponyfill: PropTypes.any -}; - export default Composer; export type { ComposerProps }; diff --git a/packages/bundle/src/FullComposer.tsx b/packages/bundle/src/FullComposer.tsx index 385ebdbaa6..eb74cf6501 100644 --- a/packages/bundle/src/FullComposer.tsx +++ b/packages/bundle/src/FullComposer.tsx @@ -1,5 +1,4 @@ import { Components, type ComposerProps } from 'botframework-webchat-component'; -import PropTypes from 'prop-types'; import React from 'react'; import AddFullBundle, { type AddFullBundleProps, type AddFullBundleChildren } from './AddFullBundle'; @@ -13,7 +12,7 @@ type ComposerPropsChildren = ComposerProps['children']; * The union type of ComposerProps and AddFullBundleProps was not resolving correctly, so manually constructing the type here. */ type FullComposerProps = Omit & { - children?: ComposerPropsChildren | AddFullBundleChildren; + readonly children?: ComposerPropsChildren | AddFullBundleChildren | undefined; }; const FullComposer = (props: FullComposerProps) => ( @@ -28,13 +27,6 @@ const FullComposer = (props: FullComposerProps) => ( ); -FullComposer.propTypes = { - ...Composer.propTypes, - adaptiveCardsHostConfig: PropTypes.any, - adaptiveCardsPackage: PropTypes.any, - children: PropTypes.any -}; - export default FullComposer; export type { FullComposerProps }; diff --git a/packages/component/src/Composer.tsx b/packages/component/src/Composer.tsx index 6f403b5f25..04272034e0 100644 --- a/packages/component/src/Composer.tsx +++ b/packages/component/src/Composer.tsx @@ -512,11 +512,5 @@ const Composer = ({ ); }; -Composer.propTypes = { - ...APIComposer.propTypes, - ...ComposerCore.propTypes, - children: PropTypes.any -}; - export default Composer; export type { ComposerProps }; diff --git a/packages/component/src/ReactWebChat.tsx b/packages/component/src/ReactWebChat.tsx index 93a359e329..b31be76794 100644 --- a/packages/component/src/ReactWebChat.tsx +++ b/packages/component/src/ReactWebChat.tsx @@ -1,4 +1,3 @@ -import PropTypes from 'prop-types'; import React from 'react'; import BasicWebChat from './BasicWebChat'; @@ -25,18 +24,6 @@ const ReactWebChat = ({ className, role, ...composerProps }: ReactWebChatProps) ); -const { - // Excluding "children" from ComposerProps. - children: _, - ...composerPropTypesWithoutChildren -} = Composer.propTypes; - -ReactWebChat.propTypes = { - className: PropTypes.string, - role: PropTypes.string, - ...composerPropTypesWithoutChildren -}; - export default ReactWebChat; export type { ReactWebChatProps }; From 85513ed8f72424a883e51eaac9a88aa7fc797036 Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Wed, 28 Oct 2026 14:48:03 -0700 Subject: [PATCH 2/2] Add the changelog fragment --- .changelog/5973-fix-react-19-prop-types-typings.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/5973-fix-react-19-prop-types-typings.md diff --git a/.changelog/5973-fix-react-19-prop-types-typings.md b/.changelog/5973-fix-react-19-prop-types-typings.md new file mode 100644 index 0000000000..2e3d1f9e4e --- /dev/null +++ b/.changelog/5973-fix-react-19-prop-types-typings.md @@ -0,0 +1,3 @@ +### Removed + +- 💥 Function components: removed `ReactWebChat.propTypes` and `Composer.propTypes`, fixing type errors with `@types/react@19`, related to [#5552](https://github.com/microsoft/BotFramework-WebChat/issues/5552), in PR [#5973](https://github.com/microsoft/BotFramework-WebChat/pull/5973), by [@OEvgeny](https://github.com/OEvgeny)