From caa6975ebcdbd127418754fd38014cc7ecb0d2a7 Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Thu, 29 Oct 2026 10:53:30 -0700 Subject: [PATCH 1/4] Fix events of renderWebChat() with React 16 inside a shadow root React 16 listens to events on the document unless the container is a document or a document fragment. Inside a shadow root, the document gets events retargeted to the shadow host, so the bundled React DOM 16.8.6 ignored every click and keystroke. renderWebChat() now renders a hidden portal into the shadow root with a no-op handler for every React 16 event, so React 16 also listens on the shadow root. --- .../customElement/shadowRoot.interact.html | 99 +++++++++++++++++ .../shadowRoot.interact.html.snap-1.png | Bin 0 -> 11280 bytes .../shadowRoot.interact.html.snap-2.png | Bin 0 -> 11934 bytes .../shadowRoot.interact.react18.html | 97 +++++++++++++++++ ...hadowRoot.interact.react18.html.snap-1.png | Bin 0 -> 11280 bytes ...hadowRoot.interact.react18.html.snap-2.png | Bin 0 -> 11934 bytes ...dowRoot.interact.renderIntoShadowRoot.html | 96 ++++++++++++++++ ...eract.renderIntoShadowRoot.html.snap-1.png | Bin 0 -> 11373 bytes ...eract.renderIntoShadowRoot.html.snap-2.png | Bin 0 -> 12028 bytes .../src/private/react16EventListenerProps.ts | 103 ++++++++++++++++++ packages/bundle/src/renderWebChat.spec.tsx | 83 +++++++++++++- packages/bundle/src/renderWebChat.tsx | 44 +++++++- 12 files changed, 518 insertions(+), 4 deletions(-) create mode 100644 __tests__/html2/customElement/shadowRoot.interact.html create mode 100644 __tests__/html2/customElement/shadowRoot.interact.html.snap-1.png create mode 100644 __tests__/html2/customElement/shadowRoot.interact.html.snap-2.png create mode 100644 __tests__/html2/customElement/shadowRoot.interact.react18.html create mode 100644 __tests__/html2/customElement/shadowRoot.interact.react18.html.snap-1.png create mode 100644 __tests__/html2/customElement/shadowRoot.interact.react18.html.snap-2.png create mode 100644 __tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html create mode 100644 __tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-1.png create mode 100644 __tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-2.png create mode 100644 packages/bundle/src/private/react16EventListenerProps.ts diff --git a/__tests__/html2/customElement/shadowRoot.interact.html b/__tests__/html2/customElement/shadowRoot.interact.html new file mode 100644 index 0000000000..e6ceae1168 --- /dev/null +++ b/__tests__/html2/customElement/shadowRoot.interact.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + diff --git a/__tests__/html2/customElement/shadowRoot.interact.html.snap-1.png b/__tests__/html2/customElement/shadowRoot.interact.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e95451b8da3db5003a9e8a8434dad31ffcca6c4e GIT binary patch literal 11280 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 GSN{hxc3p-5 literal 0 HcmV?d00001 diff --git a/__tests__/html2/customElement/shadowRoot.interact.html.snap-2.png b/__tests__/html2/customElement/shadowRoot.interact.html.snap-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ce1ef4f3f03d1f9134b7962d3c8dc1462cf2113d GIT binary patch literal 11934 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 cpBhO8G1&CV + + + + + + + + + + + + + + + + + diff --git a/__tests__/html2/customElement/shadowRoot.interact.react18.html.snap-1.png b/__tests__/html2/customElement/shadowRoot.interact.react18.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e95451b8da3db5003a9e8a8434dad31ffcca6c4e GIT binary patch literal 11280 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 GSN{hxc3p-5 literal 0 HcmV?d00001 diff --git a/__tests__/html2/customElement/shadowRoot.interact.react18.html.snap-2.png b/__tests__/html2/customElement/shadowRoot.interact.react18.html.snap-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ce1ef4f3f03d1f9134b7962d3c8dc1462cf2113d GIT binary patch literal 11934 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 cpBhO8G1&CV + + + + + + + + + +
+ + + + + diff --git a/__tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-1.png b/__tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe55b0af97a9fa87877850df82c33ee55b4216b GIT binary patch literal 11373 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 Bj!OUl literal 0 HcmV?d00001 diff --git a/__tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-2.png b/__tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc74059d731ac6fe78305bfd774e72cc1e3a9a20 GIT binary patch literal 12028 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 literal 0 HcmV?d00001 diff --git a/packages/bundle/src/private/react16EventListenerProps.ts b/packages/bundle/src/private/react16EventListenerProps.ts new file mode 100644 index 0000000000..3e561bffd0 --- /dev/null +++ b/packages/bundle/src/private/react16EventListenerProps.ts @@ -0,0 +1,103 @@ +// Every event prop of React 16, from its event plugins. +const REACT_16_EVENT_PROP_NAMES = Object.freeze([ + 'onAbort', + 'onAnimationEnd', + 'onAnimationIteration', + 'onAnimationStart', + 'onAuxClick', + 'onBeforeInput', + 'onBlur', + 'onCanPlay', + 'onCanPlayThrough', + 'onCancel', + 'onChange', + 'onClick', + 'onClose', + 'onCompositionEnd', + 'onCompositionStart', + 'onCompositionUpdate', + 'onContextMenu', + 'onCopy', + 'onCut', + 'onDoubleClick', + 'onDrag', + 'onDragEnd', + 'onDragEnter', + 'onDragExit', + 'onDragLeave', + 'onDragOver', + 'onDragStart', + 'onDrop', + 'onDurationChange', + 'onEmptied', + 'onEncrypted', + 'onEnded', + 'onError', + 'onFocus', + 'onGotPointerCapture', + 'onInput', + 'onInvalid', + 'onKeyDown', + 'onKeyPress', + 'onKeyUp', + 'onLoad', + 'onLoadStart', + 'onLoadedData', + 'onLoadedMetadata', + 'onLostPointerCapture', + 'onMouseDown', + 'onMouseEnter', + 'onMouseLeave', + 'onMouseMove', + 'onMouseOut', + 'onMouseOver', + 'onMouseUp', + 'onPaste', + 'onPause', + 'onPlay', + 'onPlaying', + 'onPointerCancel', + 'onPointerDown', + 'onPointerEnter', + 'onPointerLeave', + 'onPointerMove', + 'onPointerOut', + 'onPointerOver', + 'onPointerUp', + 'onProgress', + 'onRateChange', + 'onReset', + 'onScroll', + 'onSeeked', + 'onSeeking', + 'onSelect', + 'onStalled', + 'onSubmit', + 'onSuspend', + 'onTimeUpdate', + 'onToggle', + 'onTouchCancel', + 'onTouchEnd', + 'onTouchMove', + 'onTouchStart', + 'onTransitionEnd', + 'onVolumeChange', + 'onWaiting', + 'onWheel' +] as const); + +function noop() { + // Only here for React 16 to listen to the event. +} + +/** + * A no-op handler for every event of React 16. + * + * React 16 listens to an event on the root of the container when it first renders a handler for it. + * Rendering these props makes React 16 listen to every event. + */ +const react16EventListenerProps: { readonly [name: string]: () => void } = Object.freeze( + Object.fromEntries(REACT_16_EVENT_PROP_NAMES.map(name => [name, noop])) +); + +export default react16EventListenerProps; diff --git a/packages/bundle/src/renderWebChat.spec.tsx b/packages/bundle/src/renderWebChat.spec.tsx index b569dfcada..2a8cefcb7d 100644 --- a/packages/bundle/src/renderWebChat.spec.tsx +++ b/packages/bundle/src/renderWebChat.spec.tsx @@ -3,6 +3,7 @@ import ReactDOM from 'react-dom'; +import react16EventListenerProps from './private/react16EventListenerProps'; import renderWebChat from './renderWebChat'; // `render` is set before each test, the React 19 test removes it. @@ -10,11 +11,15 @@ jest.mock('react-dom', () => ({ __esModule: true, default: {} })); const ReactWebChat = () => null; +let createPortal: jest.Mock; let render: jest.Mock; beforeEach(() => { + createPortal = jest.fn((children, container) => ({ children, container })); render = jest.fn(); - Object.assign(ReactDOM, { render }); + + // React DOM 16.8.6 has no `version`. + Object.assign(ReactDOM, { createPortal, render, version: undefined }); }); test('Element should be rendered by ReactDOM.render()', () => { @@ -69,3 +74,79 @@ test('Neither a container nor a root should throw', () => expect(() => renderWebChat(ReactWebChat, {}, {} as unknown as HTMLElement)).toThrow( 'renderWebChat() expects an HTMLElement or a root from ReactDOM.createRoot().' )); + +describe('Element in a shadow root', () => { + let element: HTMLElement; + let shadowRoot: ShadowRoot; + + beforeEach(() => { + element = document.createElement('div'); + shadowRoot = document.createElement('div').attachShadow({ mode: 'open' }); + + shadowRoot.append(element); + }); + + test('on React 16 should render a portal into the shadow root with every event handler', () => { + renderWebChat(ReactWebChat, {}, element); + + expect(createPortal).toHaveBeenCalledTimes(1); + expect(createPortal.mock.calls[0][0].props).toEqual({ hidden: true, ...react16EventListenerProps }); + expect(createPortal.mock.calls[0][1]).toBe(shadowRoot); + expect(render.mock.calls[0][0].props.children).toEqual([ + expect.objectContaining({ type: ReactWebChat }), + createPortal.mock.results[0].value + ]); + expect(render.mock.calls[0][1]).toBe(element); + }); + + test('on React 16.14 should render a portal into the shadow root', () => { + Object.assign(ReactDOM, { version: '16.14.0' }); + + renderWebChat(ReactWebChat, {}, element); + + expect(createPortal).toHaveBeenCalledTimes(1); + }); + + test('on React 17 or later should render without a portal', () => { + Object.assign(ReactDOM, { version: '17.0.2' }); + + renderWebChat(ReactWebChat, {}, element); + + expect(createPortal).not.toHaveBeenCalled(); + expect(render.mock.calls[0][0]).toEqual(expect.objectContaining({ type: ReactWebChat })); + }); + + test('rendered into the shadow root itself should render without a portal', () => { + renderWebChat(ReactWebChat, {}, shadowRoot); + + expect(createPortal).not.toHaveBeenCalled(); + expect(render.mock.calls[0][0]).toEqual(expect.objectContaining({ type: ReactWebChat })); + expect(render.mock.calls[0][1]).toBe(shadowRoot); + }); +}); + +test('Element outside of a shadow root on React 16 should render without a portal', () => { + const element = document.createElement('div'); + + document.body.append(element); + renderWebChat(ReactWebChat, {}, element); + element.remove(); + + expect(createPortal).not.toHaveBeenCalled(); + expect(render.mock.calls[0][0]).toEqual(expect.objectContaining({ type: ReactWebChat })); +}); + +test('React 16 event handlers should cover every event of React DOM 16.8.6', () => { + const actualReactDOM = jest.requireActual('react-dom'); + + // Private API of React DOM 16.8.6: `Events[4]` is the dispatch config of every event, by event name. + const [, , , , eventNameDispatchConfigs] = actualReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Events; + + // React DOM 16.8.6 has no `version`. + expect(actualReactDOM).not.toHaveProperty('version'); + expect(Object.keys(react16EventListenerProps).sort()).toEqual( + Object.values(eventNameDispatchConfigs) + .map(({ phasedRegistrationNames, registrationName }) => registrationName || phasedRegistrationNames.bubbled) + .sort() + ); +}); diff --git a/packages/bundle/src/renderWebChat.tsx b/packages/bundle/src/renderWebChat.tsx index 9f12077a9d..5411078471 100644 --- a/packages/bundle/src/renderWebChat.tsx +++ b/packages/bundle/src/renderWebChat.tsx @@ -1,7 +1,22 @@ import { reactNode } from '@msinternal/botframework-webchat-react-valibot'; -import React, { type ComponentType, type ReactNode } from 'react'; +import React, { Fragment, type ComponentType, type ReactNode } from 'react'; import ReactDOM from 'react-dom'; -import { args, custom, function_, is, object, picklist, pipe, tuple } from 'valibot'; +import { + args, + custom, + function_, + is, + literal, + object, + optional, + picklist, + pipe, + startsWith, + string, + tuple +} from 'valibot'; + +import react16EventListenerProps from './private/react16EventListenerProps'; /** A root from `createRoot()` of "react-dom/client". */ type RenderWebChatRoot = { render(children: ReactNode): void }; @@ -38,6 +53,14 @@ const legacyReactDOMSchema = object({ render: pipe(function_(), args(tuple([reac // `root.render(children)`, root from `createRoot()` of "react-dom/client". const reactRootSchema = object({ render: pipe(function_(), args(tuple([reactNode()]))) }); +// React DOM 16.13 added `version`, earlier versions do not have it. +const react16DOMSchema = object({ createPortal: function_(), version: optional(pipe(string(), startsWith('16.'))) }); + +// A shadow root, by `nodeType` and `host` to work across realms. +const shadowRootSchema = custom(value => + is(object({ host: object({ nodeType: literal(ELEMENT_NODE) }), nodeType: literal(DOCUMENT_FRAGMENT_NODE) }), value) +); + export default function renderWebChat( ReactWebChat: ComponentType, props: any, @@ -53,8 +76,23 @@ export default function renderWebChat( ); } + const rootNode = elementOrRoot.getRootNode?.(); + // React 16 to 18, and Preact. Also the IIFE build, which bundles React DOM 16.8.6 unless `window.ReactDOM` is set. - ReactDOM.render(children, elementOrRoot); + ReactDOM.render( + // React 16 listens to events on the document, unless the container is a document or a shadow root. + // In a shadow root, the document gets events retargeted to the shadow host, React 16 ignores every click and keystroke. + // A portal into the shadow root makes React 16 listen there too. React 17 listens on the container: remove with React 16. + is(react16DOMSchema, ReactDOM) && rootNode !== elementOrRoot && is(shadowRootSchema, rootNode) ? ( + + {children} + {ReactDOM.createPortal( + ) : ( + children + ), + elementOrRoot + ); } else if (is(reactRootSchema, elementOrRoot)) { // The host created the root: render with it on any React version, it is the host's to unmount. elementOrRoot.render(children); From e5b0d1d1777563558e6edb549cf05028baffba50 Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Thu, 29 Oct 2026 10:57:42 -0700 Subject: [PATCH 2/4] Put suggested actions carousel styles into styleOptions.stylesRoot The carousel of suggested actions put its react-film styles into the document head, so suggested actions inside a shadow root lost their carousel layout and showed a list bullet. --- .../shadowRoot.interact.html.snap-1.png | Bin 11280 -> 11200 bytes ...hadowRoot.interact.react18.html.snap-1.png | Bin 11280 -> 11200 bytes ...eract.renderIntoShadowRoot.html.snap-1.png | Bin 11373 -> 11297 bytes .../src/SendBox/SuggestedActions.tsx | 4 +++- 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/__tests__/html2/customElement/shadowRoot.interact.html.snap-1.png b/__tests__/html2/customElement/shadowRoot.interact.html.snap-1.png index e95451b8da3db5003a9e8a8434dad31ffcca6c4e..2d653de1e2aaeb3bd6c20451bc3366ad3f08add6 100644 GIT binary patch literal 11200 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 literal 11280 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 GSN{hxc3p-5 diff --git a/__tests__/html2/customElement/shadowRoot.interact.react18.html.snap-1.png b/__tests__/html2/customElement/shadowRoot.interact.react18.html.snap-1.png index e95451b8da3db5003a9e8a8434dad31ffcca6c4e..2d653de1e2aaeb3bd6c20451bc3366ad3f08add6 100644 GIT binary patch literal 11200 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 literal 11280 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 GSN{hxc3p-5 diff --git a/__tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-1.png b/__tests__/html2/customElement/shadowRoot.interact.renderIntoShadowRoot.html.snap-1.png index 4fe55b0af97a9fa87877850df82c33ee55b4216b..cc78eb605b8c665e9f10dd67c82f655cd173bdf0 100644 GIT binary patch literal 11297 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 literal 11373 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 Bj!OUl diff --git a/packages/component/src/SendBox/SuggestedActions.tsx b/packages/component/src/SendBox/SuggestedActions.tsx index 9b1e5032b5..e986886972 100644 --- a/packages/component/src/SendBox/SuggestedActions.tsx +++ b/packages/component/src/SendBox/SuggestedActions.tsx @@ -36,7 +36,8 @@ const SuggestedActionCarouselContainer = ({ children, className, label }) => { { suggestedActionsCarouselFlipperBoxWidth, suggestedActionsCarouselFlipperCursor, - suggestedActionsCarouselFlipperSize + suggestedActionsCarouselFlipperSize, + stylesRoot } ] = useStyleOptions(); const [{ suggestedActions: suggestedActionsStyleSet }] = useStyleSet(); @@ -99,6 +100,7 @@ const SuggestedActionCarouselContainer = ({ children, className, label }) => { showDots={false} showScrollBar={false} styleSet={filmStyleSet} + stylesRoot={stylesRoot} > {children} From 5b5815d477261dd60d8b2a85a560b9a482be0f5b Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Thu, 29 Oct 2026 11:56:02 -0700 Subject: [PATCH 3/4] Skip React 16 touch and wheel listeners in shadow roots, which block scrolling --- .../bundle/src/private/react16EventListenerProps.ts | 13 ++++++------- packages/bundle/src/renderWebChat.spec.tsx | 3 ++- packages/component/src/SendBox/SuggestedActions.tsx | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/bundle/src/private/react16EventListenerProps.ts b/packages/bundle/src/private/react16EventListenerProps.ts index 3e561bffd0..244fac81b4 100644 --- a/packages/bundle/src/private/react16EventListenerProps.ts +++ b/packages/bundle/src/private/react16EventListenerProps.ts @@ -1,4 +1,4 @@ -// Every event prop of React 16, from its event plugins. +// Every event prop of React 16, from its event plugins, except the ones that block scrolling (see below). const REACT_16_EVENT_PROP_NAMES = Object.freeze([ 'onAbort', 'onAnimationEnd', @@ -78,12 +78,11 @@ const REACT_16_EVENT_PROP_NAMES = Object.freeze([ 'onToggle', 'onTouchCancel', 'onTouchEnd', - 'onTouchMove', - 'onTouchStart', + // Without `onTouchMove`, `onTouchStart` and `onWheel`: React 16 listens to them as blocking (not passive), which can delay + // scrolling. Web Chat does not use them. 'onTransitionEnd', 'onVolumeChange', - 'onWaiting', - 'onWheel' + 'onWaiting' ] as const); function noop() { @@ -91,10 +90,10 @@ function noop() { } /** - * A no-op handler for every event of React 16. + * A no-op handler for every event of React 16 that Web Chat may use. * * React 16 listens to an event on the root of the container when it first renders a handler for it. - * Rendering these props makes React 16 listen to every event. + * Rendering these props makes React 16 listen to these events. */ const react16EventListenerProps: { readonly [name: string]: () => void } = Object.freeze( Object.fromEntries(REACT_16_EVENT_PROP_NAMES.map(name => [name, noop])) diff --git a/packages/bundle/src/renderWebChat.spec.tsx b/packages/bundle/src/renderWebChat.spec.tsx index 2a8cefcb7d..34b921fd44 100644 --- a/packages/bundle/src/renderWebChat.spec.tsx +++ b/packages/bundle/src/renderWebChat.spec.tsx @@ -136,7 +136,7 @@ test('Element outside of a shadow root on React 16 should render without a porta expect(render.mock.calls[0][0]).toEqual(expect.objectContaining({ type: ReactWebChat })); }); -test('React 16 event handlers should cover every event of React DOM 16.8.6', () => { +test('React 16 event handlers should cover every event of React DOM 16.8.6 except the ones that block scrolling', () => { const actualReactDOM = jest.requireActual('react-dom'); // Private API of React DOM 16.8.6: `Events[4]` is the dispatch config of every event, by event name. @@ -147,6 +147,7 @@ test('React 16 event handlers should cover every event of React DOM 16.8.6', () expect(Object.keys(react16EventListenerProps).sort()).toEqual( Object.values(eventNameDispatchConfigs) .map(({ phasedRegistrationNames, registrationName }) => registrationName || phasedRegistrationNames.bubbled) + .filter(name => !['onTouchMove', 'onTouchStart', 'onWheel'].includes(name)) .sort() ); }); diff --git a/packages/component/src/SendBox/SuggestedActions.tsx b/packages/component/src/SendBox/SuggestedActions.tsx index e986886972..43e660b86e 100644 --- a/packages/component/src/SendBox/SuggestedActions.tsx +++ b/packages/component/src/SendBox/SuggestedActions.tsx @@ -34,10 +34,10 @@ const ROOT_STYLE = { const SuggestedActionCarouselContainer = ({ children, className, label }) => { const [ { + stylesRoot, suggestedActionsCarouselFlipperBoxWidth, suggestedActionsCarouselFlipperCursor, - suggestedActionsCarouselFlipperSize, - stylesRoot + suggestedActionsCarouselFlipperSize } ] = useStyleOptions(); const [{ suggestedActions: suggestedActionsStyleSet }] = useStyleSet(); From c7fa2765c2bfd939474ce9e561ea94e34ee62bcb Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Thu, 29 Oct 2026 12:10:15 -0700 Subject: [PATCH 4/4] Add the changelog fragment --- .changelog/5982-fix-react-16-shadow-dom.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/5982-fix-react-16-shadow-dom.md diff --git a/.changelog/5982-fix-react-16-shadow-dom.md b/.changelog/5982-fix-react-16-shadow-dom.md new file mode 100644 index 0000000000..f7fe3c2ef3 --- /dev/null +++ b/.changelog/5982-fix-react-16-shadow-dom.md @@ -0,0 +1,3 @@ +### Fixed + +- Fixed `renderWebChat()` ignoring clicks and typing inside a shadow root on React 16, related to [#5315](https://github.com/microsoft/BotFramework-WebChat/issues/5315), in PR [#5982](https://github.com/microsoft/BotFramework-WebChat/pull/5982), by [@OEvgeny](https://github.com/OEvgeny)