From 270fc46a697ee1e35b67a952774047c35701156d Mon Sep 17 00:00:00 2001 From: Lexi Taylor Date: Tue, 6 May 2025 23:48:05 +0000 Subject: [PATCH 1/3] Activity status should not show feedback form --- __tests__/html2/activity/feedback.noForm.html | 67 ++++++++++++++++++ .../activity/feedback.noForm.html.snap-1.png | Bin 0 -> 12932 bytes .../providers/ActivityFeedbackComposer.tsx | 6 +- 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 __tests__/html2/activity/feedback.noForm.html create mode 100644 __tests__/html2/activity/feedback.noForm.html.snap-1.png diff --git a/__tests__/html2/activity/feedback.noForm.html b/__tests__/html2/activity/feedback.noForm.html new file mode 100644 index 0000000000..32319c0cfc --- /dev/null +++ b/__tests__/html2/activity/feedback.noForm.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + +
+ + + diff --git a/__tests__/html2/activity/feedback.noForm.html.snap-1.png b/__tests__/html2/activity/feedback.noForm.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..43888a9650f86f95272eff272827baedac29515c GIT binary patch literal 12932 zcmeHu=Uld?N4AQxhiq9vZIP-B348AqMpX7n5EYaW zHerJ@!VY_ck^8v%dtN+m?(qk-pZY1rc#ZQsj_*3ozS7oIK7Eq?BohMS0XSmfIeLyZwCI z^4wj8p)W&U1x;O>aoz07CItny#U&r&qpcl`i>iF$ZGAZS1Ox`v)mpPno7C;<121B< zKM$SVJguXD*oa6%?Yf{64BN{#}HBE8*WR__quG?Sg;1;NLFzw+sG$&7!-u@ zj^od%si=sRJoLwD_;Y>V!!JZ^nBM*R{3w&!+5f{2W|4o4dJa0eR+?JxZEg%Y+c!rG z!f)t{)ii!HN|ndlgllEVqi;C&h30J`X8kW0oNF$lNKGi;`P$8qh~`Q9uzz1)nnDnK zZEc&HqK4bwYDD2JNLW^fy$25-_{?O*;AI(sBm0EHrW7m8CC0i1BTI%>(^VyZo1%MZRI7`^v;Ox1#*pe;$pObV-lD60f;bYz6d<8ioO z(AH;k=7%cvJ_Rvj9zDvGDD_0_MxOC5jfjsyH-%IK(Fv|EA!IuwrK6&O$Z{71l9!q1ltt)^0cqqr% zUA61~khOZAPc!k}q4j?&k-o=6bo8uOLv~$q-&-7?$)wuTSiL$;<`Xc4zb8m$nDG*LrrvIEc`vlmKd(= z*BkTwdOb#M?V0FvqOKEPMHfeFyoFW_aM$&rS_Ct)t(FZH4#1@o;Y5O_}IWxtnnciB;q$m14g&#^mt*??uYtq zDE|i>*sTX$?;a?)L8-W{OrZ62bszrn%P;C(*&40zZRcKsg>yqNo8^#G`M0lMZ#0}Q zw&}Ps?poPWO(WVv?>&qbG_is$u!SwK3Kp?~dR4;3-FWcg+qZ9dPX;4+HEx#L_1u&g z^(+3?+A3aIS(&Z)<~Lp;A@YznHHjC68l4{~ZT>4LC?O}=r^(1^zVAKnjT`Oi$+G

rC#5YtGwB@SE0!Vxj(RNea1`5SeWa{hF8 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 XdcEIkX&3&t5+<~w=G~$@_h0-M8a!7M literal 0 HcmV?d00001 diff --git a/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx b/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx index f1fc9ff4fc..04c93a091d 100644 --- a/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx +++ b/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx @@ -13,7 +13,7 @@ import dereferenceBlankNodes from '../../Utils/JSONLinkedData/dereferenceBlankNo import hasFeedbackLoop from '../private/hasFeedbackLoop'; import ActivityFeedbackContext, { type ActivityFeedbackContextType } from './private/ActivityFeedbackContext'; -const { usePonyfill, usePostActivity } = hooks; +const { usePonyfill, usePostActivity, useStyleOptions } = hooks; type ActivityFeedbackComposerProps = Readonly<{ activity: WebChatActivity; @@ -188,7 +188,9 @@ function ActivityFeedbackComposer({ children, activity: activityFromProps }: Act [actionsRef, actionStateRef, activityRef, postActivity, setActionStateWithRefresh] ); - const shouldShowFeedbackForm = hasFeedbackLoop(activity); + const [{ feedbackActionsPlacement }] = useStyleOptions(); + + const shouldShowFeedbackForm = hasFeedbackLoop(activity) && feedbackActionsPlacement === 'activity-actions'; const shouldShowFeedbackFormRef = useRefFrom(shouldShowFeedbackForm); const shouldShowFeedbackFormState = useMemo( From 55f53f6dbf20790379d66188754b86a2625207c6 Mon Sep 17 00:00:00 2001 From: Lexi Taylor Date: Wed, 7 May 2025 15:31:17 +0000 Subject: [PATCH 2/3] update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1f8113098..0b91cd3d22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -86,7 +86,7 @@ Notes: web developers are advised to use [`~` (tilde range)](https://github.com/ - Added support of [contentless activity in livestream](https://github.com/microsoft/BotFramework-WebChat/blob/main/docs/LIVESTREAMING.md#scenario-3-interim-activities-with-no-content), in PR [#5430](https://github.com/microsoft/BotFramework-WebChat/pull/5430), by [@compulim](https://github.com/compulim) - Added sliding dots typing indicator in Fluent theme, in PR [#5447](https://github.com/microsoft/BotFramework-WebChat/pull/5447) and PR [#5448](https://github.com/microsoft/BotFramework-WebChat/pull/5448), by [@compulim](https://github.com/compulim) - (Experimental) Add an ability to pass `completion` prop into Fluent send box and expose the component, in PR [#5466](https://github.com/microsoft/BotFramework-WebChat/pull/5466), by [@OEvgeny](https://github.com/OEvgeny) -- Added feedback form for like/dislike button when `feedbackActionsPlacement` is `"activity-actions"`, in PR [#5460](https://github.com/microsoft/BotFramework-WebChat/pull/5460), PR [#5469](https://github.com/microsoft/BotFramework-WebChat/pull/5469), and PR [5470](https://github.com/microsoft/BotFramework-WebChat/pull/5470) by [@lexi-taylor](https://github.com/lexi-taylor) and [@OEvgeny](https://github.com/OEvgeny) +- Added feedback form for like/dislike button when `feedbackActionsPlacement` is `"activity-actions"`, in PR [#5460](https://github.com/microsoft/BotFramework-WebChat/pull/5460), PR [#5469](https://github.com/microsoft/BotFramework-WebChat/pull/5469), PR [#5476](https://github.com/microsoft/BotFramework-WebChat/pull/5475) and PR [5470](https://github.com/microsoft/BotFramework-WebChat/pull/5470) by [@lexi-taylor](https://github.com/lexi-taylor) and [@OEvgeny](https://github.com/OEvgeny) - Added multi-dimensional grouping, `styleOptions.groupActivitiesBy`, and `useGroupActivitiesByName` hook, in PR [#5471](https://github.com/microsoft/BotFramework-WebChat/pull/5471), by [@compulim](https://github.com/compulim) - Existing behavior will be kept and activities will be grouped by `sender` followed by `status` - `useGroupActivitiesByName` is favored over the existing `useGroupActivities` hook for performance reason From ba9b0912eabfdd773394dc3ef55bc996e148cb1d Mon Sep 17 00:00:00 2001 From: Lexi Taylor Date: Wed, 7 May 2025 16:20:38 +0000 Subject: [PATCH 3/3] update test --- __tests__/html2/activity/feedback.noForm.html | 9 ++++----- .../activity/feedback.noForm.html.snap-1.png | Bin 12932 -> 15011 bytes 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/__tests__/html2/activity/feedback.noForm.html b/__tests__/html2/activity/feedback.noForm.html index 32319c0cfc..3ac24cd7f9 100644 --- a/__tests__/html2/activity/feedback.noForm.html +++ b/__tests__/html2/activity/feedback.noForm.html @@ -23,10 +23,7 @@ const App = () => ( - + ); @@ -55,8 +52,10 @@ await host.sendShiftTab(3); await host.sendKeys('ENTER'); - await host.sendKeys('ENTER'); + await directLine.actPostActivity(async () => { + await host.sendKeys('ENTER'); + }); await expect(pageElements.byTestId('feedback sendbox')).toBeFalsy(); diff --git a/__tests__/html2/activity/feedback.noForm.html.snap-1.png b/__tests__/html2/activity/feedback.noForm.html.snap-1.png index 43888a9650f86f95272eff272827baedac29515c..06eb5c3650b2cff88f3700bb025cf79bbd7be2c5 100644 GIT binary patch literal 15011 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 RzfP%??`hmc-}&d+{{iWSF%$p* literal 12932 zcmeHu=Uld?N4AQxhiq9vZIP-B348AqMpX7n5EYaW zHerJ@!VY_ck^8v%dtN+m?(qk-pZY1rc#ZQsj_*3ozS7oIK7Eq?BohMS0XSmfIeLyZwCI z^4wj8p)W&U1x;O>aoz07CItny#U&r&qpcl`i>iF$ZGAZS1Ox`v)mpPno7C;<121B< zKM$SVJguXD*oa6%?Yf{64BN{#}HBE8*WR__quG?Sg;1;NLFzw+sG$&7!-u@ zj^od%si=sRJoLwD_;Y>V!!JZ^nBM*R{3w&!+5f{2W|4o4dJa0eR+?JxZEg%Y+c!rG z!f)t{)ii!HN|ndlgllEVqi;C&h30J`X8kW0oNF$lNKGi;`P$8qh~`Q9uzz1)nnDnK zZEc&HqK4bwYDD2JNLW^fy$25-_{?O*;AI(sBm0EHrW7m8CC0i1BTI%>(^VyZo1%MZRI7`^v;Ox1#*pe;$pObV-lD60f;bYz6d<8ioO z(AH;k=7%cvJ_Rvj9zDvGDD_0_MxOC5jfjsyH-%IK(Fv|EA!IuwrK6&O$Z{71l9!q1ltt)^0cqqr% zUA61~khOZAPc!k}q4j?&k-o=6bo8uOLv~$q-&-7?$)wuTSiL$;<`Xc4zb8m$nDG*LrrvIEc`vlmKd(= z*BkTwdOb#M?V0FvqOKEPMHfeFyoFW_aM$&rS_Ct)t(FZH4#1@o;Y5O_}IWxtnnciB;q$m14g&#^mt*??uYtq zDE|i>*sTX$?;a?)L8-W{OrZ62bszrn%P;C(*&40zZRcKsg>yqNo8^#G`M0lMZ#0}Q zw&}Ps?poPWO(WVv?>&qbG_is$u!SwK3Kp?~dR4;3-FWcg+qZ9dPX;4+HEx#L_1u&g z^(+3?+A3aIS(&Z)<~Lp;A@YznHHjC68l4{~ZT>4LC?O}=r^(1^zVAKnjT`Oi$+G

rC#5YtGwB@SE0!Vxj(RNea1`5SeWa{hF8 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 XdcEIkX&3&t5+<~w=G~$@_h0-M8a!7M