diff --git a/CHANGELOG.md b/CHANGELOG.md index 421ddd541e..210fc79adc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -216,6 +216,7 @@ Notes: web developers are advised to use [`~` (tilde range)](https://github.com/ # Removed - Deprecating `disabled` props and `useDisabled` hook in favor of new `uiState` props and `useUIState` hook, in PR [#5276](https://github.com/microsoft/BotFramework-WebChat/pull/5276), by [@compulim](https://github.com/compulim) +- Removed `ActivitListenerComposer` composer and `useUpsertedActivities` hook in PR [#5467](https://github.com/microsoft/BotFramework-WebChat/pull/5467) by [@pranavjoshi001](https://github.com/pranavjoshi001) ## [4.18.0] - 2024-07-10 diff --git a/packages/api/src/hooks/Composer.tsx b/packages/api/src/hooks/Composer.tsx index b4671ec3dc..e8531cdf34 100644 --- a/packages/api/src/hooks/Composer.tsx +++ b/packages/api/src/hooks/Composer.tsx @@ -43,7 +43,6 @@ import normalizeStyleOptions from '../normalizeStyleOptions'; import patchStyleOptionsFromDeprecatedProps from '../patchStyleOptionsFromDeprecatedProps'; import ActivityAcknowledgementComposer from '../providers/ActivityAcknowledgement/ActivityAcknowledgementComposer'; import ActivityKeyerComposer from '../providers/ActivityKeyer/ActivityKeyerComposer'; -import ActivityListenerComposer from '../providers/ActivityListener/ActivityListenerComposer'; import ActivitySendStatusComposer from '../providers/ActivitySendStatus/ActivitySendStatusComposer'; import ActivitySendStatusTelemetryComposer from '../providers/ActivitySendStatusTelemetry/ActivitySendStatusTelemetryComposer'; import ActivityTypingComposer from '../providers/ActivityTyping/ActivityTypingComposer'; @@ -625,18 +624,16 @@ const ComposerCore = ({ return ( - - - - - - {typeof children === 'function' ? children(context) : children} - - - - - - + + + + + {typeof children === 'function' ? children(context) : children} + + + + + {onTelemetry && } ); diff --git a/packages/api/src/providers/ActivityListener/ActivityListenerComposer.tsx b/packages/api/src/providers/ActivityListener/ActivityListenerComposer.tsx deleted file mode 100644 index fc36762b68..0000000000 --- a/packages/api/src/providers/ActivityListener/ActivityListenerComposer.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import type { WebChatActivity } from 'botframework-webchat-core'; -import React, { memo, useMemo, type ReactNode } from 'react'; -import usePrevious from '../../hooks/internal/usePrevious'; -import useActivities from '../../hooks/useActivities'; -import ActivityListenerContext, { type ActivityListenerContextType } from './private/Context'; - -type Props = Readonly<{ children?: ReactNode | undefined }>; - -const ActivityListenerComposer = memo(({ children }: Props) => { - const [activities] = useActivities(); - const prevActivities = usePrevious(activities, []); - - const upsertedActivitiesState = useMemo(() => { - const upserts: WebChatActivity[] = []; - - for (const activity of activities) { - prevActivities.includes(activity) || upserts.push(activity); - } - - return Object.freeze([Object.freeze(upserts)]); - }, [activities, prevActivities]); - - const context = useMemo(() => ({ upsertedActivitiesState }), [upsertedActivitiesState]); - - return {children}; -}); - -export default ActivityListenerComposer; diff --git a/packages/api/src/providers/ActivityListener/private/Context.tsx b/packages/api/src/providers/ActivityListener/private/Context.tsx deleted file mode 100644 index b9062610b2..0000000000 --- a/packages/api/src/providers/ActivityListener/private/Context.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { type WebChatActivity } from 'botframework-webchat-core'; -import { createContext } from 'react'; - -export type ActivityListenerContextType = { - upsertedActivitiesState: readonly [readonly WebChatActivity[]]; -}; - -const ActivityListenerContext = createContext( - new Proxy({} as ActivityListenerContextType, { - get() { - throw new Error('botframework-webchat internal: This hook can only used under .'); - } - }) -); - -export default ActivityListenerContext; diff --git a/packages/api/src/providers/ActivityListener/private/useContext.ts b/packages/api/src/providers/ActivityListener/private/useContext.ts deleted file mode 100644 index 4425511379..0000000000 --- a/packages/api/src/providers/ActivityListener/private/useContext.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { useContext } from 'react'; -import ActivityListenerContext from './Context'; - -export default function useActivityListenerContext() { - return useContext(ActivityListenerContext); -} diff --git a/packages/api/src/providers/ActivityListener/useUpsertedActivities.ts b/packages/api/src/providers/ActivityListener/useUpsertedActivities.ts deleted file mode 100644 index 34489ed90f..0000000000 --- a/packages/api/src/providers/ActivityListener/useUpsertedActivities.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { WebChatActivity } from 'botframework-webchat-core'; -import useActivityListenerContext from './private/useContext'; - -export default function useUpsertedActivities(): readonly [readonly WebChatActivity[]] { - return useActivityListenerContext().upsertedActivitiesState; -}