Skip to content

Commit c24e1a9

Browse files
committed
Safe handling actions
1 parent 1923964 commit c24e1a9

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

packages/redux-store/src/suggestedActions/SuggestedActionsComposer.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { setRawState } from 'botframework-webchat-core/internal';
99
import { reactNode, validateProps } from 'botframework-webchat-react-valibot';
1010
import React, { memo, useCallback, useEffect, useMemo, useState } from 'react';
1111
import { type Action } from 'redux';
12-
import { object, optional, parse, pipe, readonly, type InferInput } from 'valibot';
12+
import { object, optional, pipe, readonly, safeParse, type InferInput } from 'valibot';
1313

1414
import reduxStoreSchema from '../private/reduxStoreSchema';
1515
import SuggestedActionsContext, { type SuggestedActionsContextType } from './private/SuggestedActionsContext';
@@ -49,12 +49,16 @@ function SuggestedActionsComposer(props: SuggestedActionsComposerProps) {
4949
setOriginActivity(undefined);
5050
setSuggestedActionsRaw(EMPTY_ARRAY);
5151
} else if (action.type === SET_SUGGESTED_ACTIONS) {
52-
const {
53-
payload: { originActivity, suggestedActions }
54-
} = parse(setSuggestedActionsActionSchema, action);
52+
const result = safeParse(setSuggestedActionsActionSchema, action);
5553

56-
setOriginActivity(originActivity);
57-
setSuggestedActionsRaw(Object.freeze(Array.from(suggestedActions)));
54+
if (result.success) {
55+
const {
56+
payload: { originActivity, suggestedActions }
57+
} = result.output;
58+
59+
setOriginActivity(originActivity);
60+
setSuggestedActionsRaw(Object.freeze(Array.from(suggestedActions)));
61+
}
5862
}
5963
},
6064
[setOriginActivity, setSuggestedActionsRaw]

0 commit comments

Comments
 (0)