Skip to content

Commit 6b5da06

Browse files
committed
Clean up
1 parent 0488ef0 commit 6b5da06

3 files changed

Lines changed: 29 additions & 30 deletions

File tree

packages/component/src/Activity/ActivityFeedback.tsx

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ import { hooks } from 'botframework-webchat-api';
22
import { getOrgSchemaMessage, OrgSchemaAction, parseAction, WebChatActivity } from 'botframework-webchat-core';
33
import classNames from 'classnames';
44
import React, { memo, useCallback, useMemo, useState } from 'react';
5-
import { defaultFeedbackEntities } from './private/DefaultFeedbackEntities';
6-
import { hasFeedbackLoop, getDisclaimer } from './private/feedbackActivity.util';
75
import useStyleSet from '../hooks/useStyleSet';
8-
import Feedback from './private/Feedback';
96
import dereferenceBlankNodes from '../Utils/JSONLinkedData/dereferenceBlankNodes';
7+
import Feedback from './private/Feedback';
8+
import { getDisclaimer, hasFeedbackLoop } from './private/feedbackActivity.util';
109
import FeedbackForm from './private/FeedbackForm';
1110

1211
const { useStyleOptions } = hooks;
@@ -18,9 +17,29 @@ type ActivityFeedbackProps = Readonly<{
1817
const parseActivity = (entities?: WebChatActivity['entities']) => {
1918
const graph = dereferenceBlankNodes(entities || []);
2019
const messageThing = getOrgSchemaMessage(graph);
20+
2121
return { graph, messageThing };
2222
};
2323

24+
const defaultFeedbackEntities = {
25+
'@context': 'https://schema.org',
26+
'@id': '',
27+
'@type': 'Message',
28+
type: 'https://schema.org/Message',
29+
30+
keywords: [],
31+
potentialAction: [
32+
{
33+
'@type': 'LikeAction',
34+
actionStatus: 'PotentialActionStatus'
35+
},
36+
{
37+
'@type': 'DislikeAction',
38+
actionStatus: 'PotentialActionStatus'
39+
}
40+
]
41+
};
42+
2443
function ActivityFeedback({ activity }: ActivityFeedbackProps) {
2544
const [{ feedbackActionsPlacement }] = useStyleOptions();
2645
const [{ feedbackForm }] = useStyleSet();
@@ -33,6 +52,7 @@ function ActivityFeedback({ activity }: ActivityFeedbackProps) {
3352
if (isFeedbackLoopSupported) {
3453
return parseActivity([defaultFeedbackEntities]);
3554
}
55+
3656
return parseActivity(activity.entities);
3757
}, [activity.entities, isFeedbackLoopSupported]);
3858

@@ -58,10 +78,8 @@ function ActivityFeedback({ activity }: ActivityFeedbackProps) {
5878
}, [graph, messageThing?.potentialAction]);
5979

6080
const handleFeedbackActionClick = useCallback(
61-
(action?: OrgSchemaAction) => {
62-
setSelectedAction(action === selectedAction ? undefined : action);
63-
},
64-
[selectedAction]
81+
(action?: OrgSchemaAction) => setSelectedAction(action === selectedAction ? undefined : action),
82+
[selectedAction, setSelectedAction]
6583
);
6684

6785
const FeedbackComponent = useMemo(

packages/component/src/Activity/private/DefaultFeedbackEntities.ts

Lines changed: 0 additions & 17 deletions
This file was deleted.

packages/component/src/Activity/private/feedbackActivity.util.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
import { type WebChatActivity } from 'botframework-webchat-core';
2-
import { literal, object, safeParse, string } from 'valibot';
2+
import { literal, object, safeParse, string, type InferOutput } from 'valibot';
33

44
const activityWithFeedbackLoopSchema = object({
55
channelData: object({
66
feedbackLoop: object({
7-
type: literal('default'),
8-
disclaimer: string()
7+
disclaimer: string(),
8+
type: literal('default')
99
})
1010
})
1111
});
1212

13-
type FeedbackActivity = WebChatActivity & {
14-
channelData: typeof activityWithFeedbackLoopSchema;
15-
};
13+
type FeedbackActivity = WebChatActivity & InferOutput<typeof activityWithFeedbackLoopSchema>;
1614

1715
export const hasFeedbackLoop = (activity: WebChatActivity): activity is FeedbackActivity =>
1816
safeParse(activityWithFeedbackLoopSchema, activity).success;

0 commit comments

Comments
 (0)