Skip to content

Commit ead28aa

Browse files
committed
Add props schema
1 parent 18c2acd commit ead28aa

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

packages/fluent-theme/src/components/activity/ActivityDecorator.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
1+
import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';
12
import { WebChatActivity } from 'botframework-webchat-component';
23
import cx from 'classnames';
34
import React, { ReactNode, memo } from 'react';
5+
import { object, optional, pipe, readonly, type InferInput } from 'valibot';
6+
47
import { useStyles, useVariantClassName } from '../../styles';
58
import styles from './ActivityDecorator.module.css';
69

7-
function ActivityDecorator({ children }: Readonly<{ activity: WebChatActivity; children: ReactNode }>) {
10+
const activityDecoratorPropsSchema = pipe(
11+
object({
12+
children: optional(reactNode())
13+
}),
14+
readonly()
15+
);
16+
17+
type ActivityDecoratorProps = InferInput<typeof activityDecoratorPropsSchema>;
18+
19+
function ActivityDecorator(props: Readonly<{ activity: WebChatActivity; children: ReactNode }>) {
20+
const { children } = validateProps(activityDecoratorPropsSchema, props);
21+
822
const classNames = useStyles(styles);
923
const variantClassName = useVariantClassName(styles);
1024

@@ -14,3 +28,4 @@ function ActivityDecorator({ children }: Readonly<{ activity: WebChatActivity; c
1428
ActivityDecorator.displayName = 'ActivityDecorator';
1529

1630
export default memo(ActivityDecorator);
31+
export { activityDecoratorPropsSchema, type ActivityDecoratorProps };

0 commit comments

Comments
 (0)