@@ -4,13 +4,14 @@ import {
44 type SendBoxPolymiddleware
55} from '@msinternal/botframework-webchat-api-middleware' ;
66import { type LegacySendBoxMiddleware } from '@msinternal/botframework-webchat-api-middleware/legacy' ;
7- import { composeEnhancer } from 'handler-chain' ;
8- import { type ComponentType } from 'react' ;
7+ import { composeEnhancer , type Enhancer } from 'handler-chain' ;
8+ import { type ReactNode } from 'react' ;
99import { custom , function_ , never , object , optional , pipe , readonly , safeParse , string , type InferInput } from 'valibot' ;
1010
1111import LegacySendBoxBridge from './LegacySendBoxBridge' ;
1212
13- type LegacySendBoxRenderFunction = ComponentType < { readonly className ?: string | undefined } > ;
13+ type LegacySendBoxRenderFunction = ( props : { readonly className ?: string | undefined } ) => ReactNode ;
14+ type LegacySendBoxComponent = ReactNode ;
1415
1516const legacySendBoxBridgeComponentPropsSchema = pipe (
1617 object ( {
@@ -35,7 +36,9 @@ type LegacySendBoxBridgeComponentProps = Readonly<
3536function createSendBoxPolymiddlewareFromLegacy (
3637 ...middleware : readonly LegacySendBoxMiddleware [ ]
3738) : SendBoxPolymiddleware {
38- const legacyEnhancer = composeEnhancer ( ...middleware . map ( middleware => middleware ( ) ) ) ;
39+ const legacyEnhancer : Enhancer < LegacySendBoxComponent , void > = composeEnhancer < LegacySendBoxComponent , void > (
40+ ...( middleware . map ( middleware => middleware ( ) ) as Enhancer < LegacySendBoxComponent , void > [ ] )
41+ ) ;
3942
4043 return createSendBoxPolymiddleware ( next => {
4144 const legacyHandler = legacyEnhancer ( ( ) => {
@@ -47,7 +50,7 @@ function createSendBoxPolymiddlewareFromLegacy(
4750 return ( ) => {
4851 const legacyResult = legacyHandler ( ) ;
4952
50- return legacyResult ? sendBoxComponent ( LegacySendBoxBridge , { render : legacyResult ( ) } ) : undefined ;
53+ return legacyResult ? sendBoxComponent ( LegacySendBoxBridge , { render : ( ) => legacyResult } ) : undefined ;
5154 } ;
5255 } ) ;
5356}
0 commit comments