diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e89adc708..9205393585 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,10 @@ Legends: - Added `styleOptions.richCardTitleOmitHeadingRole` (default `false`) to opt out of `style: 'heading'` on rich card titles, in PR [#5839](https://github.com/microsoft/BotFramework-WebChat/pull/5839), by [@cjennison](https://github.com/cjennison) +### Fixed + +- Fixed an error when a failed activity is present when Web Chat mounts, resolving [#5812](https://github.com/microsoft/BotFramework-WebChat/issues/5812), in PR [#5848](https://github.com/microsoft/BotFramework-WebChat/pull/5848), by [@OEvgeny](https://github.com/OEvgeny) + ## [4.19.1] - 2026-06-09 diff --git a/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html b/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html new file mode 100644 index 0000000000..fc022a50dd --- /dev/null +++ b/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html @@ -0,0 +1,86 @@ + + + + + + + + + + + +
+ + + diff --git a/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html.snap-1.png b/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html.snap-1.png new file mode 100644 index 0000000000..b8c90f04e0 Binary files /dev/null and b/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html.snap-1.png differ diff --git a/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html.snap-2.png b/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html.snap-2.png new file mode 100644 index 0000000000..b8c90f04e0 Binary files /dev/null and b/__tests__/html2/activityStatus/rehydrateSendFailedRetry.html.snap-2.png differ diff --git a/packages/component/src/Transcript/LiveRegion/SendFailed.tsx b/packages/component/src/Transcript/LiveRegion/SendFailed.tsx index 3af37838ad..54252f9c2e 100644 --- a/packages/component/src/Transcript/LiveRegion/SendFailed.tsx +++ b/packages/component/src/Transcript/LiveRegion/SendFailed.tsx @@ -48,7 +48,7 @@ const LiveRegionSendFailed = () => { /** True, if one or more non-presentational activities start appears as "send failed", otherwise, false. */ const hasNewSendFailed = useMemo(() => { - if (activityKeysOfSendFailed === prevActivityKeysOfSendFailed) { + if (!prevActivityKeysOfSendFailed || activityKeysOfSendFailed === prevActivityKeysOfSendFailed) { return false; } diff --git a/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js b/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js index c29e9bdc27..642fc719c0 100644 --- a/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js +++ b/packages/test/page-object/src/globals/testHelpers/createDirectLineEmulator.js @@ -16,9 +16,9 @@ function uniqueId() { return random().toString(36).substring(2, 7); } -export default function createDirectLineEmulator({ autoConnect = true, ponyfill = {} } = {}) { +export default function createDirectLineEmulator({ autoConnect = true, initialState, ponyfill = {} } = {}) { const { Date = window.Date } = ponyfill; - const store = createStoreWithOptions({ ponyfill }); + const store = createStoreWithOptions({ ponyfill }, initialState); if (!isNativeClock()) { throw new Error('Fake timer is detected at global-level. You must pass it via the "ponyfill" option.');