botframework-webchat-api 4.13.0 → 4.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.yml +4 -100
- package/.prettierrc.yml +1 -1
- package/lib/StyleOptions.d.ts +270 -15
- package/lib/StyleOptions.d.ts.map +1 -1
- package/lib/defaultStyleOptions.d.ts +4 -0
- package/lib/defaultStyleOptions.d.ts.map +1 -0
- package/lib/defaultStyleOptions.js +73 -16
- package/lib/hooks/Composer.d.ts +71 -0
- package/lib/hooks/Composer.d.ts.map +1 -0
- package/lib/hooks/Composer.js +122 -90
- package/lib/hooks/index.d.ts +74 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/index.js +89 -1
- package/lib/hooks/internal/ErrorBox.js +2 -2
- package/lib/hooks/internal/Tracker.d.ts +4 -0
- package/lib/hooks/internal/Tracker.d.ts.map +1 -0
- package/lib/hooks/internal/WebChatAPIContext.d.ts +81 -0
- package/lib/hooks/internal/WebChatAPIContext.d.ts.map +1 -0
- package/lib/hooks/internal/WebChatAPIContext.js +2 -4
- package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts +4 -0
- package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts.map +1 -0
- package/lib/hooks/internal/useCreateActivityRendererInternal.js +1 -1
- package/lib/hooks/internal/useDebugDeps.js +11 -5
- package/lib/hooks/internal/useDownscaleImageToDataURL.js +1 -1
- package/lib/hooks/internal/useErrorBoxClass.js +1 -1
- package/lib/hooks/internal/useForceRender.js +2 -2
- package/lib/hooks/internal/useLocalizedStrings.js +1 -1
- package/lib/hooks/internal/usePrevious.d.ts +2 -0
- package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
- package/lib/hooks/internal/usePrevious.js +17 -0
- package/lib/hooks/internal/useReadTelemetryDimensions.js +2 -2
- package/lib/hooks/internal/useTimePassed.js +2 -2
- package/lib/hooks/internal/useTracker.js +2 -2
- package/lib/hooks/internal/useValueRef.d.ts +3 -0
- package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
- package/lib/hooks/internal/useValueRef.js +24 -0
- package/lib/hooks/middleware/UserlandBoundary.js +4 -4
- package/lib/hooks/middleware/applyMiddleware.js +6 -6
- package/lib/hooks/middleware/concatMiddleware.d.ts +6 -0
- package/lib/hooks/middleware/concatMiddleware.d.ts.map +1 -0
- package/lib/hooks/middleware/concatMiddleware.js +3 -3
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts +3 -0
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts.map +1 -0
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.js +6 -8
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts +5 -0
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts.map +1 -0
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.js +1 -1
- package/lib/hooks/useActiveTyping.d.ts +6 -0
- package/lib/hooks/useActiveTyping.d.ts.map +1 -0
- package/lib/hooks/useActiveTyping.js +4 -4
- package/lib/hooks/useActivities.d.ts +3 -0
- package/lib/hooks/useActivities.d.ts.map +1 -0
- package/lib/hooks/useActivities.js +1 -1
- package/lib/hooks/useActivityKeys.d.ts +3 -0
- package/lib/hooks/useActivityKeys.d.ts.map +1 -0
- package/lib/hooks/useActivityKeys.js +14 -0
- package/lib/hooks/useActivityKeysByRead.d.ts +3 -0
- package/lib/hooks/useActivityKeysByRead.d.ts.map +1 -0
- package/lib/hooks/useActivityKeysByRead.js +14 -0
- package/lib/hooks/useAvatarForBot.d.ts +5 -0
- package/lib/hooks/useAvatarForBot.d.ts.map +1 -0
- package/lib/hooks/useAvatarForBot.js +2 -2
- package/lib/hooks/useAvatarForUser.d.ts +5 -0
- package/lib/hooks/useAvatarForUser.d.ts.map +1 -0
- package/lib/hooks/useAvatarForUser.js +2 -2
- package/lib/hooks/useByteFormatter.d.ts +2 -0
- package/lib/hooks/useByteFormatter.d.ts.map +1 -0
- package/lib/hooks/useByteFormatter.js +2 -2
- package/lib/hooks/useConnectivityStatus.d.ts +2 -0
- package/lib/hooks/useConnectivityStatus.d.ts.map +1 -0
- package/lib/hooks/useConnectivityStatus.js +1 -1
- package/lib/hooks/useCreateActivityRenderer.d.ts +3 -0
- package/lib/hooks/useCreateActivityRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateActivityRenderer.js +1 -2
- package/lib/hooks/useCreateActivityStatusRenderer.d.ts +9 -0
- package/lib/hooks/useCreateActivityStatusRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateActivityStatusRenderer.js +6 -4
- package/lib/hooks/useCreateAvatarRenderer.d.ts +6 -0
- package/lib/hooks/useCreateAvatarRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateAvatarRenderer.js +2 -2
- package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts +3 -0
- package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateScrollToEndButtonRenderer.js +15 -0
- package/lib/hooks/useDateFormatter.d.ts +2 -0
- package/lib/hooks/useDateFormatter.d.ts.map +1 -0
- package/lib/hooks/useDateFormatter.js +2 -2
- package/lib/hooks/useDebouncedNotifications.d.ts +13 -0
- package/lib/hooks/useDebouncedNotifications.d.ts.map +1 -0
- package/lib/hooks/useDebouncedNotifications.js +7 -7
- package/lib/hooks/useDictateInterims.d.ts +2 -0
- package/lib/hooks/useDictateInterims.d.ts.map +1 -0
- package/lib/hooks/useDictateInterims.js +1 -1
- package/lib/hooks/useDictateState.d.ts +2 -0
- package/lib/hooks/useDictateState.d.ts.map +1 -0
- package/lib/hooks/useDictateState.js +1 -1
- package/lib/hooks/useDirection.d.ts +2 -0
- package/lib/hooks/useDirection.d.ts.map +1 -0
- package/lib/hooks/useDirection.js +2 -2
- package/lib/hooks/useDisabled.d.ts +2 -0
- package/lib/hooks/useDisabled.d.ts.map +1 -0
- package/lib/hooks/useDisabled.js +1 -1
- package/lib/hooks/useDismissNotification.d.ts +2 -0
- package/lib/hooks/useDismissNotification.d.ts.map +1 -0
- package/lib/hooks/useDismissNotification.js +1 -1
- package/lib/hooks/useEmitTypingIndicator.d.ts +2 -0
- package/lib/hooks/useEmitTypingIndicator.d.ts.map +1 -0
- package/lib/hooks/useEmitTypingIndicator.js +1 -1
- package/lib/hooks/useGetActivityByKey.d.ts +3 -0
- package/lib/hooks/useGetActivityByKey.d.ts.map +1 -0
- package/lib/hooks/useGetActivityByKey.js +14 -0
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts +3 -0
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts.map +1 -0
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.js +14 -0
- package/lib/hooks/useGetKeyByActivity.d.ts +3 -0
- package/lib/hooks/useGetKeyByActivity.d.ts.map +1 -0
- package/lib/hooks/useGetKeyByActivity.js +14 -0
- package/lib/hooks/useGetKeyByActivityId.d.ts +3 -0
- package/lib/hooks/useGetKeyByActivityId.d.ts.map +1 -0
- package/lib/hooks/useGetKeyByActivityId.js +14 -0
- package/lib/hooks/useGetSendTimeoutForActivity.d.ts +5 -0
- package/lib/hooks/useGetSendTimeoutForActivity.d.ts.map +1 -0
- package/lib/hooks/useGetSendTimeoutForActivity.js +2 -2
- package/lib/hooks/useGrammars.d.ts +2 -0
- package/lib/hooks/useGrammars.d.ts.map +1 -0
- package/lib/hooks/useGrammars.js +1 -1
- package/lib/hooks/useGroupActivities.d.ts +8 -0
- package/lib/hooks/useGroupActivities.d.ts.map +1 -0
- package/lib/hooks/useGroupActivities.js +1 -1
- package/lib/hooks/useGroupTimestamp.d.ts +2 -0
- package/lib/hooks/useGroupTimestamp.d.ts.map +1 -0
- package/lib/hooks/useGroupTimestamp.js +2 -2
- package/lib/hooks/useLanguage.d.ts +2 -0
- package/lib/hooks/useLanguage.d.ts.map +1 -0
- package/lib/hooks/useLanguage.js +1 -1
- package/lib/hooks/useLastAcknowledgedActivityKey.d.ts +3 -0
- package/lib/hooks/useLastAcknowledgedActivityKey.d.ts.map +1 -0
- package/lib/hooks/useLastAcknowledgedActivityKey.js +14 -0
- package/lib/hooks/useLastReadActivityKey.d.ts +3 -0
- package/lib/hooks/useLastReadActivityKey.d.ts.map +1 -0
- package/lib/hooks/useLastReadActivityKey.js +14 -0
- package/lib/hooks/useLastTypingAt.d.ts +5 -0
- package/lib/hooks/useLastTypingAt.d.ts.map +1 -0
- package/lib/hooks/useLastTypingAt.js +2 -1
- package/lib/hooks/useLocalize.d.ts +3 -0
- package/lib/hooks/useLocalize.d.ts.map +1 -0
- package/lib/hooks/useLocalize.js +5 -2
- package/lib/hooks/useLocalizeDate.d.ts +3 -0
- package/lib/hooks/useLocalizeDate.d.ts.map +1 -0
- package/lib/hooks/useLocalizeDate.js +3 -2
- package/lib/hooks/useLocalizer.d.ts +13 -0
- package/lib/hooks/useLocalizer.d.ts.map +1 -0
- package/lib/hooks/useLocalizer.js +16 -6
- package/lib/hooks/useMarkActivityAsSpoken.d.ts +3 -0
- package/lib/hooks/useMarkActivityAsSpoken.d.ts.map +1 -0
- package/lib/hooks/useMarkActivityAsSpoken.js +1 -1
- package/lib/hooks/useMarkActivityKeyAsRead.d.ts +3 -0
- package/lib/hooks/useMarkActivityKeyAsRead.d.ts.map +1 -0
- package/lib/hooks/useMarkActivityKeyAsRead.js +14 -0
- package/lib/hooks/useMarkAllAsAcknowledged.d.ts +3 -0
- package/lib/hooks/useMarkAllAsAcknowledged.d.ts.map +1 -0
- package/lib/hooks/useMarkAllAsAcknowledged.js +14 -0
- package/lib/hooks/useNotifications.d.ts +3 -0
- package/lib/hooks/useNotifications.d.ts.map +1 -0
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/usePerformCardAction.d.ts +3 -0
- package/lib/hooks/usePerformCardAction.d.ts.map +1 -0
- package/lib/hooks/usePerformCardAction.js +1 -1
- package/lib/hooks/usePostActivity.d.ts +4 -0
- package/lib/hooks/usePostActivity.d.ts.map +1 -0
- package/lib/hooks/usePostActivity.js +1 -1
- package/lib/hooks/useReferenceGrammarID.d.ts +2 -0
- package/lib/hooks/useReferenceGrammarID.d.ts.map +1 -0
- package/lib/hooks/useReferenceGrammarID.js +1 -1
- package/lib/hooks/useRelativeTimeFormatter.d.ts +2 -0
- package/lib/hooks/useRelativeTimeFormatter.d.ts.map +1 -0
- package/lib/hooks/useRelativeTimeFormatter.js +2 -2
- package/lib/hooks/useRenderActivity.js +2 -1
- package/lib/hooks/useRenderActivityStatus.js +2 -1
- package/lib/hooks/useRenderAttachment.js +1 -1
- package/lib/hooks/useRenderAvatar.js +2 -1
- package/lib/hooks/useRenderToast.d.ts +3 -0
- package/lib/hooks/useRenderToast.d.ts.map +1 -0
- package/lib/hooks/useRenderToast.js +1 -1
- package/lib/hooks/useRenderTypingIndicator.d.ts +3 -0
- package/lib/hooks/useRenderTypingIndicator.d.ts.map +1 -0
- package/lib/hooks/useRenderTypingIndicator.js +1 -1
- package/lib/hooks/useSendBoxValue.d.ts +2 -0
- package/lib/hooks/useSendBoxValue.d.ts.map +1 -0
- package/lib/hooks/useSendBoxValue.js +1 -1
- package/lib/hooks/useSendEvent.d.ts +2 -0
- package/lib/hooks/useSendEvent.d.ts.map +1 -0
- package/lib/hooks/useSendEvent.js +1 -1
- package/lib/hooks/useSendFiles.d.ts +2 -0
- package/lib/hooks/useSendFiles.d.ts.map +1 -0
- package/lib/hooks/useSendFiles.js +1 -1
- package/lib/hooks/useSendMessage.d.ts +4 -0
- package/lib/hooks/useSendMessage.d.ts.map +1 -0
- package/lib/hooks/useSendMessage.js +1 -1
- package/lib/hooks/useSendMessageBack.d.ts +2 -0
- package/lib/hooks/useSendMessageBack.d.ts.map +1 -0
- package/lib/hooks/useSendMessageBack.js +1 -1
- package/lib/hooks/useSendPostBack.d.ts +2 -0
- package/lib/hooks/useSendPostBack.d.ts.map +1 -0
- package/lib/hooks/useSendPostBack.js +1 -1
- package/lib/hooks/useSendTimeoutForActivity.d.ts +4 -0
- package/lib/hooks/useSendTimeoutForActivity.d.ts.map +1 -0
- package/lib/hooks/useSendTimeoutForActivity.js +2 -1
- package/lib/hooks/useSendTypingIndicator.d.ts +2 -0
- package/lib/hooks/useSendTypingIndicator.d.ts.map +1 -0
- package/lib/hooks/useSendTypingIndicator.js +1 -1
- package/lib/hooks/useSetNotification.d.ts +3 -0
- package/lib/hooks/useSetNotification.d.ts.map +1 -0
- package/lib/hooks/useSetNotification.js +1 -1
- package/lib/hooks/useShouldSpeakIncomingActivity.d.ts +2 -0
- package/lib/hooks/useShouldSpeakIncomingActivity.d.ts.map +1 -0
- package/lib/hooks/useShouldSpeakIncomingActivity.js +1 -1
- package/lib/hooks/useStartDictate.d.ts +2 -0
- package/lib/hooks/useStartDictate.d.ts.map +1 -0
- package/lib/hooks/useStartDictate.js +1 -1
- package/lib/hooks/useStopDictate.d.ts +2 -0
- package/lib/hooks/useStopDictate.d.ts.map +1 -0
- package/lib/hooks/useStopDictate.js +1 -1
- package/lib/hooks/useStyleOptions.d.ts +3 -0
- package/lib/hooks/useStyleOptions.d.ts.map +1 -0
- package/lib/hooks/useStyleOptions.js +1 -1
- package/lib/hooks/useSubmitSendBox.d.ts +4 -0
- package/lib/hooks/useSubmitSendBox.d.ts.map +1 -0
- package/lib/hooks/useSubmitSendBox.js +8 -5
- package/lib/hooks/useSuggestedActions.d.ts +6 -0
- package/lib/hooks/useSuggestedActions.d.ts.map +1 -0
- package/lib/hooks/useSuggestedActions.js +1 -1
- package/lib/hooks/useTimeoutForSend.d.ts +3 -0
- package/lib/hooks/useTimeoutForSend.d.ts.map +1 -0
- package/lib/hooks/useTimeoutForSend.js +2 -2
- package/lib/hooks/useTrackDimension.d.ts +2 -0
- package/lib/hooks/useTrackDimension.d.ts.map +1 -0
- package/lib/hooks/useTrackDimension.js +1 -1
- package/lib/hooks/useTrackEvent.d.ts +10 -0
- package/lib/hooks/useTrackEvent.d.ts.map +1 -0
- package/lib/hooks/useTrackEvent.js +1 -1
- package/lib/hooks/useTrackException.d.ts +2 -0
- package/lib/hooks/useTrackException.d.ts.map +1 -0
- package/lib/hooks/useTrackException.js +2 -2
- package/lib/hooks/useTrackTiming.d.ts +2 -0
- package/lib/hooks/useTrackTiming.d.ts.map +1 -0
- package/lib/hooks/useTrackTiming.js +1 -1
- package/lib/hooks/useUserID.d.ts +2 -0
- package/lib/hooks/useUserID.d.ts.map +1 -0
- package/lib/hooks/useUserID.js +1 -1
- package/lib/hooks/useUsername.d.ts +2 -0
- package/lib/hooks/useUsername.d.ts.map +1 -0
- package/lib/hooks/useUsername.js +1 -1
- package/lib/hooks/useVoiceSelector.d.ts +2 -0
- package/lib/hooks/useVoiceSelector.d.ts.map +1 -0
- package/lib/hooks/useVoiceSelector.js +1 -1
- package/lib/hooks/utils/ErrorBoundary.js +4 -4
- package/lib/hooks/utils/observableToPromise.d.ts +3 -0
- package/lib/hooks/utils/observableToPromise.d.ts.map +1 -0
- package/lib/hooks/utils/observableToPromise.js +1 -1
- package/lib/index.d.ts +20 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -10
- package/lib/localization/Localize.d.ts +10 -0
- package/lib/localization/Localize.d.ts.map +1 -0
- package/lib/localization/Localize.js +18 -12
- package/lib/localization/ar-SA.json +24 -4
- package/lib/localization/bg-BG.json +24 -4
- package/lib/localization/ca-ES.json +24 -4
- package/lib/localization/cs-CZ.json +24 -4
- package/lib/localization/da-DK.json +24 -4
- package/lib/localization/de-DE.json +24 -4
- package/lib/localization/el-GR.json +24 -4
- package/lib/localization/en-US.json +30 -7
- package/lib/localization/es-ES.json +24 -4
- package/lib/localization/et-EE.json +24 -4
- package/lib/localization/eu-ES.json +24 -4
- package/lib/localization/fi-FI.json +24 -4
- package/lib/localization/fr-FR.json +24 -4
- package/lib/localization/getAllLocalizedStrings.d.ts +6 -0
- package/lib/localization/getAllLocalizedStrings.d.ts.map +1 -0
- package/lib/localization/getAllLocalizedStrings.js +1 -1
- package/lib/localization/getLocaleString.d.ts +2 -0
- package/lib/localization/getLocaleString.d.ts.map +1 -0
- package/lib/localization/getLocaleString.js +3 -3
- package/lib/localization/getRTLList.d.ts +2 -0
- package/lib/localization/getRTLList.d.ts.map +1 -0
- package/lib/localization/getRTLList.js +1 -1
- package/lib/localization/gl-ES.json +24 -4
- package/lib/localization/he-IL.json +24 -4
- package/lib/localization/hi-IN.json +24 -4
- package/lib/localization/hr-HR.json +24 -4
- package/lib/localization/hu-HU.json +24 -4
- package/lib/localization/id-ID.json +24 -4
- package/lib/localization/it-IT.json +24 -4
- package/lib/localization/ja-JP.json +24 -4
- package/lib/localization/kk-KZ.json +24 -4
- package/lib/localization/ko-KR.json +24 -4
- package/lib/localization/lt-LT.json +24 -4
- package/lib/localization/lv-LV.json +24 -4
- package/lib/localization/mergeLocalizedStrings.d.ts +7 -0
- package/lib/localization/mergeLocalizedStrings.d.ts.map +1 -0
- package/lib/localization/mergeLocalizedStrings.js +14 -7
- package/lib/localization/ms-MY.json +24 -4
- package/lib/localization/nb-NO.json +24 -4
- package/lib/localization/nl-NL.json +24 -4
- package/lib/localization/pl-PL.json +24 -4
- package/lib/localization/pt-BR.json +24 -4
- package/lib/localization/pt-PT.json +24 -4
- package/lib/localization/ro-RO.json +24 -4
- package/lib/localization/ru-RU.json +24 -4
- package/lib/localization/sk-SK.json +24 -4
- package/lib/localization/sl-SI.json +24 -4
- package/lib/localization/sr-Cyrl-CS.json +24 -4
- package/lib/localization/sr-Latn-CS.json +24 -4
- package/lib/localization/sv-SE.json +24 -4
- package/lib/localization/th-TH.json +24 -4
- package/lib/localization/tr-TR.json +24 -4
- package/lib/localization/uk-UA.json +24 -4
- package/lib/localization/vi-VN.json +24 -4
- package/lib/localization/yue.json +27 -7
- package/lib/localization/zh-CN.json +24 -4
- package/lib/localization/zh-HK.json +24 -4
- package/lib/localization/zh-TW.json +24 -4
- package/lib/normalizeStyleOptions.d.ts +3 -0
- package/lib/normalizeStyleOptions.d.ts.map +1 -0
- package/lib/normalizeStyleOptions.js +85 -5
- package/lib/patchStyleOptionsFromDeprecatedProps.js +1 -2
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts +5 -0
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.js +184 -0
- package/lib/providers/ActivityAcknowledgement/private/Context.d.ts +13 -0
- package/lib/providers/ActivityAcknowledgement/private/Context.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/private/Context.js +13 -0
- package/lib/providers/ActivityAcknowledgement/private/types.d.ts +6 -0
- package/lib/providers/ActivityAcknowledgement/private/types.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/private/types.js +2 -0
- package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts +3 -0
- package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/private/useContext.js +24 -0
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts +5 -0
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.js +18 -0
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.js +15 -0
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts +18 -0
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.js +153 -0
- package/lib/providers/ActivityKeyer/private/Context.d.ts +12 -0
- package/lib/providers/ActivityKeyer/private/Context.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/Context.js +13 -0
- package/lib/providers/ActivityKeyer/private/getActivityId.d.ts +3 -0
- package/lib/providers/ActivityKeyer/private/getActivityId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/getActivityId.js +11 -0
- package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts +3 -0
- package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/getClientActivityId.js +13 -0
- package/lib/providers/ActivityKeyer/private/uniqueId.d.ts +2 -0
- package/lib/providers/ActivityKeyer/private/uniqueId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/uniqueId.js +18 -0
- package/lib/providers/ActivityKeyer/private/useContext.d.ts +3 -0
- package/lib/providers/ActivityKeyer/private/useContext.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/useContext.js +24 -0
- package/lib/providers/ActivityKeyer/useActivityKeys.d.ts +2 -0
- package/lib/providers/ActivityKeyer/useActivityKeys.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useActivityKeys.js +15 -0
- package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts +3 -0
- package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useGetActivityByKey.js +15 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts +3 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.js +15 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts +2 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.js +15 -0
- package/lib/tsconfig.json +3 -1
- package/lib/types/ActivityMiddleware.d.ts +25 -0
- package/lib/types/ActivityMiddleware.d.ts.map +1 -0
- package/lib/types/ActivityMiddleware.js +2 -0
- package/lib/types/ActivityStatusMiddleware.d.ts +18 -0
- package/lib/types/ActivityStatusMiddleware.d.ts.map +1 -0
- package/lib/types/ActivityStatusMiddleware.js +2 -0
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts +14 -0
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts.map +1 -0
- package/lib/types/AttachmentForScreenReaderMiddleware.js +2 -0
- package/lib/types/AttachmentMiddleware.d.ts +12 -0
- package/lib/types/AttachmentMiddleware.d.ts.map +1 -0
- package/lib/types/AttachmentMiddleware.js +2 -0
- package/lib/types/AvatarMiddleware.d.ts +15 -0
- package/lib/types/AvatarMiddleware.d.ts.map +1 -0
- package/lib/types/AvatarMiddleware.js +2 -0
- package/lib/types/CardActionMiddleware.d.ts +19 -0
- package/lib/types/CardActionMiddleware.d.ts.map +1 -0
- package/lib/types/CardActionMiddleware.js +2 -0
- package/lib/types/ComponentMiddleware.d.ts +31 -0
- package/lib/types/ComponentMiddleware.d.ts.map +1 -0
- package/lib/types/ComponentMiddleware.js +2 -0
- package/lib/types/FunctionMiddleware.d.ts +6 -0
- package/lib/types/FunctionMiddleware.d.ts.map +1 -0
- package/lib/types/FunctionMiddleware.js +2 -0
- package/lib/types/GroupActivitiesMiddleware.d.ts +22 -0
- package/lib/types/GroupActivitiesMiddleware.d.ts.map +1 -0
- package/lib/types/GroupActivitiesMiddleware.js +2 -0
- package/lib/types/LocalizedStrings.d.ts +5 -0
- package/lib/types/LocalizedStrings.d.ts.map +1 -0
- package/lib/types/LocalizedStrings.js +2 -0
- package/lib/types/Notification.d.ts +10 -0
- package/lib/types/Notification.d.ts.map +1 -0
- package/lib/types/Notification.js +2 -0
- package/lib/types/PrecompiledGlobalize.d.ts +13 -0
- package/lib/types/PrecompiledGlobalize.d.ts.map +1 -0
- package/lib/types/PrecompiledGlobalize.js +2 -0
- package/lib/types/ScrollToEndButtonMiddleware.d.ts +30 -0
- package/lib/types/ScrollToEndButtonMiddleware.d.ts.map +1 -0
- package/lib/types/ScrollToEndButtonMiddleware.js +2 -0
- package/lib/types/SendState.d.ts +3 -0
- package/lib/types/SendState.d.ts.map +1 -0
- package/lib/types/SendState.js +2 -0
- package/lib/types/TelemetryMeasurementEvent.d.ts +31 -0
- package/lib/types/TelemetryMeasurementEvent.d.ts.map +1 -0
- package/lib/types/TelemetryMeasurementEvent.js +2 -0
- package/lib/types/ToastMiddleware.d.ts +11 -0
- package/lib/types/ToastMiddleware.d.ts.map +1 -0
- package/lib/types/ToastMiddleware.js +2 -0
- package/lib/types/Typing.d.ts +8 -0
- package/lib/types/Typing.d.ts.map +1 -0
- package/lib/types/Typing.js +2 -0
- package/lib/types/TypingIndicatorMiddleware.d.ts +17 -0
- package/lib/types/TypingIndicatorMiddleware.d.ts.map +1 -0
- package/lib/types/TypingIndicatorMiddleware.js +2 -0
- package/lib/types/WebSpeechPonyfill.d.ts +18 -0
- package/lib/types/WebSpeechPonyfill.d.ts.map +1 -0
- package/lib/types/WebSpeechPonyfill.js +2 -0
- package/lib/types/WebSpeechPonyfillFactory.d.ts +6 -0
- package/lib/types/WebSpeechPonyfillFactory.d.ts.map +1 -0
- package/lib/types/WebSpeechPonyfillFactory.js +2 -0
- package/lib/utils/createCustomEvent.d.ts +4 -0
- package/lib/utils/createCustomEvent.d.ts.map +1 -0
- package/lib/utils/createCustomEvent.js +9 -3
- package/lib/utils/findLastIndex.d.ts +2 -0
- package/lib/utils/findLastIndex.d.ts.map +1 -0
- package/lib/utils/findLastIndex.js +32 -0
- package/lib/utils/findMin.d.ts +7 -0
- package/lib/utils/findMin.d.ts.map +1 -0
- package/lib/utils/findMin.js +3 -3
- package/lib/utils/isObject.js +1 -1
- package/lib/utils/mapMap.d.ts +6 -0
- package/lib/utils/mapMap.d.ts.map +1 -0
- package/lib/utils/mapMap.js +10 -3
- package/lib/utils/normalizeLanguage.d.ts +2 -0
- package/lib/utils/normalizeLanguage.d.ts.map +1 -0
- package/lib/utils/normalizeLanguage.js +1 -1
- package/lib/utils/randomId.d.ts +2 -0
- package/lib/utils/randomId.d.ts.map +1 -0
- package/lib/utils/randomId.js +1 -1
- package/lib/utils/warnOnce.js +17 -0
- package/package.json +25 -32
- package/scripts/createPrecompiledGlobalize.mjs +44 -0
- package/src/StyleOptions.ts +332 -15
- package/src/defaultStyleOptions.ts +75 -15
- package/src/hooks/Composer.tsx +224 -145
- package/src/hooks/{index.js → index.ts} +22 -0
- package/src/hooks/internal/WebChatAPIContext.ts +68 -3
- package/src/hooks/internal/useCreateActivityRendererInternal.ts +46 -0
- package/src/hooks/internal/useDebugDeps.js +9 -2
- package/src/hooks/internal/usePrevious.ts +11 -0
- package/src/hooks/internal/useValueRef.ts +21 -0
- package/src/hooks/middleware/applyMiddleware.js +2 -3
- package/src/hooks/middleware/concatMiddleware.spec.js +4 -6
- package/src/hooks/middleware/concatMiddleware.ts +27 -0
- package/src/hooks/middleware/createDefaultCardActionMiddleware.ts +42 -0
- package/src/hooks/middleware/{createDefaultGroupActivitiesMiddleware.js → createDefaultGroupActivitiesMiddleware.ts} +20 -12
- package/src/hooks/{useActiveTyping.js → useActiveTyping.ts} +13 -9
- package/src/hooks/useActivities.ts +7 -0
- package/src/hooks/useActivityKeys.ts +3 -0
- package/src/hooks/useActivityKeysByRead.ts +3 -0
- package/src/hooks/{useAvatarForBot.js → useAvatarForBot.ts} +1 -1
- package/src/hooks/{useAvatarForUser.js → useAvatarForUser.ts} +1 -1
- package/src/hooks/{useByteFormatter.js → useByteFormatter.ts} +1 -1
- package/src/hooks/{useConnectivityStatus.js → useConnectivityStatus.ts} +1 -1
- package/src/hooks/{useCreateActivityRenderer.js → useCreateActivityRenderer.ts} +2 -3
- package/src/hooks/{useCreateActivityStatusRenderer.js → useCreateActivityStatusRenderer.tsx} +27 -11
- package/src/hooks/useCreateAvatarRenderer.ts +39 -0
- package/src/hooks/useCreateScrollToEndButtonRenderer.ts +6 -0
- package/src/hooks/useDateFormatter.ts +14 -0
- package/src/hooks/useDebouncedNotifications.spec.js +2 -0
- package/src/hooks/{useDebouncedNotifications.js → useDebouncedNotifications.ts} +10 -2
- package/src/hooks/{useDictateInterims.js → useDictateInterims.ts} +1 -1
- package/src/hooks/{useDictateState.js → useDictateState.ts} +1 -1
- package/src/hooks/{useDirection.js → useDirection.ts} +1 -1
- package/src/hooks/{useDisabled.js → useDisabled.ts} +1 -1
- package/src/hooks/{useDismissNotification.js → useDismissNotification.ts} +1 -1
- package/src/hooks/{useEmitTypingIndicator.js → useEmitTypingIndicator.ts} +1 -1
- package/src/hooks/useGetActivityByKey.ts +3 -0
- package/src/hooks/useGetHasAcknowledgedByActivityKey.ts +3 -0
- package/src/hooks/useGetKeyByActivity.ts +3 -0
- package/src/hooks/useGetKeyByActivityId.ts +3 -0
- package/src/hooks/useGetSendTimeoutForActivity.ts +20 -0
- package/src/hooks/{useGrammars.js → useGrammars.ts} +1 -1
- package/src/hooks/useGroupActivities.ts +10 -0
- package/src/hooks/{useGroupTimestamp.js → useGroupTimestamp.ts} +1 -1
- package/src/hooks/{useLanguage.js → useLanguage.ts} +1 -1
- package/src/hooks/useLastAcknowledgedActivityKey.ts +3 -0
- package/src/hooks/useLastReadActivityKey.ts +3 -0
- package/src/hooks/{useLastTypingAt.js → useLastTypingAt.ts} +2 -1
- package/src/hooks/{useLocalize.js → useLocalize.ts} +3 -1
- package/src/hooks/{useLocalizeDate.js → useLocalizeDate.ts} +2 -1
- package/src/hooks/{useLocalizer.js → useLocalizer.ts} +24 -6
- package/src/hooks/{useMarkActivityAsSpoken.js → useMarkActivityAsSpoken.ts} +2 -1
- package/src/hooks/useMarkActivityKeyAsRead.ts +3 -0
- package/src/hooks/useMarkAllAsAcknowledged.ts +3 -0
- package/src/hooks/{useNotifications.js → useNotifications.ts} +2 -1
- package/src/hooks/usePerformCardAction.ts +6 -0
- package/src/hooks/usePostActivity.ts +8 -0
- package/src/hooks/{useReferenceGrammarID.js → useReferenceGrammarID.ts} +1 -1
- package/src/hooks/{useRelativeTimeFormatter.js → useRelativeTimeFormatter.ts} +1 -1
- package/src/hooks/useRenderActivity.js +12 -10
- package/src/hooks/useRenderActivityStatus.js +1 -0
- package/src/hooks/useRenderAvatar.js +1 -0
- package/src/hooks/{useRenderToast.js → useRenderToast.ts} +2 -1
- package/src/hooks/useRenderTypingIndicator.ts +6 -0
- package/src/hooks/{useSendBoxValue.js → useSendBoxValue.ts} +1 -1
- package/src/hooks/{useSendEvent.js → useSendEvent.ts} +1 -1
- package/src/hooks/{useSendFiles.js → useSendFiles.ts} +1 -1
- package/src/hooks/useSendMessage.ts +9 -0
- package/src/hooks/{useSendMessageBack.js → useSendMessageBack.ts} +1 -1
- package/src/hooks/{useSendPostBack.js → useSendPostBack.ts} +1 -1
- package/src/hooks/{useSendTimeoutForActivity.js → useSendTimeoutForActivity.ts} +4 -1
- package/src/hooks/{useSendTypingIndicator.js → useSendTypingIndicator.ts} +1 -1
- package/src/hooks/useSetNotification.ts +6 -0
- package/src/hooks/{useShouldSpeakIncomingActivity.js → useShouldSpeakIncomingActivity.ts} +1 -1
- package/src/hooks/{useStartDictate.js → useStartDictate.ts} +1 -1
- package/src/hooks/{useStopDictate.js → useStopDictate.ts} +1 -1
- package/src/hooks/useStyleOptions.ts +6 -0
- package/src/hooks/{useSubmitSendBox.js → useSubmitSendBox.ts} +3 -6
- package/src/hooks/{useSuggestedActions.js → useSuggestedActions.ts} +5 -1
- package/src/hooks/useTimeoutForSend.ts +9 -0
- package/src/hooks/{useTrackDimension.js → useTrackDimension.ts} +1 -1
- package/src/hooks/{useTrackEvent.js → useTrackEvent.ts} +10 -2
- package/src/hooks/{useTrackException.js → useTrackException.ts} +1 -1
- package/src/hooks/{useTrackTiming.js → useTrackTiming.ts} +4 -1
- package/src/hooks/{useUserID.js → useUserID.ts} +1 -1
- package/src/hooks/{useUsername.js → useUsername.ts} +1 -1
- package/src/hooks/{useVoiceSelector.js → useVoiceSelector.ts} +4 -1
- package/src/hooks/utils/{observableToPromise.js → observableToPromise.ts} +5 -3
- package/src/index.ts +51 -0
- package/src/localization/Localize.spec.js +2 -0
- package/src/localization/{Localize.js → Localize.ts} +15 -8
- package/src/localization/ar-SA.json +24 -4
- package/src/localization/bg-BG.json +24 -4
- package/src/localization/ca-ES.json +24 -4
- package/src/localization/cs-CZ.json +24 -4
- package/src/localization/da-DK.json +24 -4
- package/src/localization/de-DE.json +24 -4
- package/src/localization/el-GR.json +24 -4
- package/src/localization/en-US.json +30 -7
- package/src/localization/es-ES.json +24 -4
- package/src/localization/et-EE.json +24 -4
- package/src/localization/eu-ES.json +24 -4
- package/src/localization/fi-FI.json +24 -4
- package/src/localization/fr-FR.json +24 -4
- package/src/localization/getAllLocalizedStrings.spec.js +3 -1
- package/src/localization/{getAllLocalizedStrings.js → getAllLocalizedStrings.ts} +2 -1
- package/src/localization/getLocaleString.spec.js +4 -2
- package/src/localization/{getLocaleString.js → getLocaleString.ts} +2 -2
- package/src/localization/{getRTLList.js → getRTLList.ts} +1 -1
- package/src/localization/gl-ES.json +24 -4
- package/src/localization/he-IL.json +24 -4
- package/src/localization/hi-IN.json +24 -4
- package/src/localization/hr-HR.json +24 -4
- package/src/localization/hu-HU.json +24 -4
- package/src/localization/id-ID.json +24 -4
- package/src/localization/it-IT.json +24 -4
- package/src/localization/ja-JP.json +24 -4
- package/src/localization/kk-KZ.json +24 -4
- package/src/localization/ko-KR.json +24 -4
- package/src/localization/lt-LT.json +24 -4
- package/src/localization/lv-LV.json +24 -4
- package/src/localization/mergeLocalizedStrings.ts +20 -0
- package/src/localization/ms-MY.json +24 -4
- package/src/localization/nb-NO.json +24 -4
- package/src/localization/nl-NL.json +24 -4
- package/src/localization/pl-PL.json +24 -4
- package/src/localization/pt-BR.json +24 -4
- package/src/localization/pt-PT.json +24 -4
- package/src/localization/ro-RO.json +24 -4
- package/src/localization/ru-RU.json +24 -4
- package/src/localization/sk-SK.json +24 -4
- package/src/localization/sl-SI.json +24 -4
- package/src/localization/sr-Cyrl-CS.json +24 -4
- package/src/localization/sr-Latn-CS.json +24 -4
- package/src/localization/sv-SE.json +24 -4
- package/src/localization/th-TH.json +24 -4
- package/src/localization/tr-TR.json +24 -4
- package/src/localization/uk-UA.json +24 -4
- package/src/localization/vi-VN.json +24 -4
- package/src/localization/yue.json +27 -7
- package/src/localization/zh-CN.json +24 -4
- package/src/localization/zh-HK.json +24 -4
- package/src/localization/zh-TW.json +24 -4
- package/src/normalizeStyleOptions.ts +113 -2
- package/src/patchStyleOptionsFromDeprecatedProps.js +0 -2
- package/src/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.tsx +180 -0
- package/src/providers/ActivityAcknowledgement/private/Context.ts +18 -0
- package/src/providers/ActivityAcknowledgement/private/types.ts +6 -0
- package/src/providers/ActivityAcknowledgement/private/useContext.ts +19 -0
- package/src/providers/ActivityAcknowledgement/useActivityKeysByRead.tsx +8 -0
- package/src/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useLastReadActivityKey.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.ts +5 -0
- package/src/providers/ActivityKeyer/ActivityKeyerComposer.tsx +151 -0
- package/src/providers/ActivityKeyer/private/Context.ts +14 -0
- package/src/providers/ActivityKeyer/private/getActivityId.ts +5 -0
- package/src/providers/ActivityKeyer/private/getClientActivityId.ts +5 -0
- package/src/providers/ActivityKeyer/private/uniqueId.ts +8 -0
- package/src/providers/ActivityKeyer/private/useContext.ts +15 -0
- package/src/providers/ActivityKeyer/useActivityKeys.ts +5 -0
- package/src/providers/ActivityKeyer/useGetActivityByKey.ts +7 -0
- package/src/providers/ActivityKeyer/useGetKeyByActivity.ts +7 -0
- package/src/providers/ActivityKeyer/useGetKeyByActivityId.ts +5 -0
- package/src/tsconfig.json +3 -1
- package/src/types/ActivityMiddleware.ts +38 -0
- package/src/types/ActivityStatusMiddleware.ts +28 -0
- package/src/types/AttachmentForScreenReaderMiddleware.ts +24 -0
- package/src/types/AttachmentMiddleware.ts +16 -0
- package/src/types/AvatarMiddleware.ts +20 -0
- package/src/types/CardActionMiddleware.ts +21 -0
- package/src/types/ComponentMiddleware.ts +42 -0
- package/src/types/FunctionMiddleware.ts +13 -0
- package/src/types/GroupActivitiesMiddleware.ts +24 -0
- package/src/types/LocalizedStrings.ts +5 -0
- package/src/types/Notification.ts +10 -0
- package/src/types/PrecompiledGlobalize.ts +9 -0
- package/src/types/ScrollToEndButtonMiddleware.ts +34 -0
- package/src/types/SendState.ts +3 -0
- package/src/types/TelemetryMeasurementEvent.ts +44 -0
- package/src/types/ToastMiddleware.ts +16 -0
- package/src/types/Typing.ts +8 -0
- package/src/types/TypingIndicatorMiddleware.ts +18 -0
- package/src/types/WebSpeechPonyfill.ts +24 -0
- package/src/types/WebSpeechPonyfillFactory.ts +5 -0
- package/src/utils/createCustomEvent.ts +28 -0
- package/src/utils/findLastIndex.spec.js +31 -0
- package/src/utils/findLastIndex.ts +11 -0
- package/src/utils/findMin.spec.js +2 -0
- package/src/utils/{findMin.js → findMin.ts} +3 -3
- package/src/utils/mapMap.spec.js +2 -0
- package/src/utils/mapMap.ts +16 -0
- package/src/utils/{normalizeLanguage.js → normalizeLanguage.ts} +1 -1
- package/src/utils/{randomId.js → randomId.ts} +1 -1
- package/src/utils/warnOnce.ts +10 -0
- package/.eslintignore +0 -9
- package/lib/hooks/utils/singleToArray.js +0 -11
- package/scripts/createPrecompiledGlobalize.js +0 -41
- package/src/hooks/internal/useCreateActivityRendererInternal.js +0 -41
- package/src/hooks/middleware/concatMiddleware.js +0 -19
- package/src/hooks/middleware/createDefaultCardActionMiddleware.js +0 -36
- package/src/hooks/useActivities.js +0 -5
- package/src/hooks/useCreateAvatarRenderer.js +0 -32
- package/src/hooks/useDateFormatter.js +0 -13
- package/src/hooks/useGetSendTimeoutForActivity.js +0 -18
- package/src/hooks/useGroupActivities.js +0 -5
- package/src/hooks/usePerformCardAction.js +0 -5
- package/src/hooks/usePostActivity.js +0 -5
- package/src/hooks/useRenderTypingIndicator.js +0 -5
- package/src/hooks/useSendMessage.js +0 -5
- package/src/hooks/useSetNotification.js +0 -5
- package/src/hooks/useStyleOptions.js +0 -5
- package/src/hooks/useTimeoutForSend.js +0 -7
- package/src/hooks/utils/singleToArray.js +0 -3
- package/src/index.js +0 -10
- package/src/index.tsx +0 -10
- package/src/localization/mergeLocalizedStrings.js +0 -10
- package/src/utils/createCustomEvent.js +0 -17
- package/src/utils/mapMap.js +0 -7
package/src/hooks/Composer.tsx
CHANGED
|
@@ -3,23 +3,17 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import React, { FC, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import updateIn from 'simple-update-in';
|
|
5
5
|
|
|
6
|
-
import createCustomEvent from '../utils/createCustomEvent';
|
|
7
|
-
import ErrorBoundary from './utils/ErrorBoundary';
|
|
8
|
-
import getAllLocalizedStrings from '../localization/getAllLocalizedStrings';
|
|
9
|
-
import isObject from '../utils/isObject';
|
|
10
|
-
import normalizeLanguage from '../utils/normalizeLanguage';
|
|
11
|
-
// @ts-ignore
|
|
12
|
-
import PrecompiledGlobalize from '../external/PrecompiledGlobalize';
|
|
13
|
-
import StyleOptions from '../StyleOptions';
|
|
14
|
-
|
|
15
6
|
import {
|
|
16
7
|
clearSuggestedActions,
|
|
17
8
|
connect as createConnectAction,
|
|
18
9
|
createStore,
|
|
10
|
+
DirectLineActivity,
|
|
11
|
+
DirectLineJSBotConnection,
|
|
19
12
|
disconnect,
|
|
20
13
|
dismissNotification,
|
|
21
14
|
emitTypingIndicator,
|
|
22
15
|
markActivity,
|
|
16
|
+
OneOrMany,
|
|
23
17
|
postActivity,
|
|
24
18
|
sendEvent,
|
|
25
19
|
sendFiles,
|
|
@@ -33,6 +27,7 @@ import {
|
|
|
33
27
|
setSendBox,
|
|
34
28
|
setSendTimeout,
|
|
35
29
|
setSendTypingIndicator,
|
|
30
|
+
singleToArray,
|
|
36
31
|
startDictate,
|
|
37
32
|
startSpeakingActivity,
|
|
38
33
|
stopDictate,
|
|
@@ -40,23 +35,47 @@ import {
|
|
|
40
35
|
submitSendBox
|
|
41
36
|
} from 'botframework-webchat-core';
|
|
42
37
|
|
|
38
|
+
import { default as WebChatAPIContext } from './internal/WebChatAPIContext';
|
|
39
|
+
import ActivityAcknowledgementComposer from '../providers/ActivityAcknowledgement/ActivityAcknowledgementComposer';
|
|
40
|
+
import ActivityKeyerComposer from '../providers/ActivityKeyer/ActivityKeyerComposer';
|
|
41
|
+
import ActivityMiddleware from '../types/ActivityMiddleware';
|
|
42
|
+
import ActivityStatusMiddleware from '../types/ActivityStatusMiddleware';
|
|
43
|
+
import AttachmentForScreenReaderMiddleware from '../types/AttachmentForScreenReaderMiddleware';
|
|
44
|
+
import AttachmentMiddleware from '../types/AttachmentMiddleware';
|
|
45
|
+
import AvatarMiddleware from '../types/AvatarMiddleware';
|
|
46
|
+
import CardActionMiddleware from '../types/CardActionMiddleware';
|
|
47
|
+
import createCustomEvent from '../utils/createCustomEvent';
|
|
43
48
|
import createDefaultCardActionMiddleware from './middleware/createDefaultCardActionMiddleware';
|
|
44
49
|
import createDefaultGroupActivitiesMiddleware from './middleware/createDefaultGroupActivitiesMiddleware';
|
|
45
50
|
import defaultSelectVoice from './internal/defaultSelectVoice';
|
|
51
|
+
import ErrorBoundary from './utils/ErrorBoundary';
|
|
52
|
+
import getAllLocalizedStrings from '../localization/getAllLocalizedStrings';
|
|
53
|
+
import GroupActivitiesMiddleware from '../types/GroupActivitiesMiddleware';
|
|
54
|
+
import isObject from '../utils/isObject';
|
|
55
|
+
import LocalizedStrings from '../types/LocalizedStrings';
|
|
46
56
|
import mapMap from '../utils/mapMap';
|
|
57
|
+
import normalizeLanguage from '../utils/normalizeLanguage';
|
|
58
|
+
import normalizeStyleOptions from '../normalizeStyleOptions';
|
|
47
59
|
import observableToPromise from './utils/observableToPromise';
|
|
60
|
+
import patchStyleOptionsFromDeprecatedProps from '../patchStyleOptionsFromDeprecatedProps';
|
|
61
|
+
import PrecompiledGlobalizeType from '../types/PrecompiledGlobalize';
|
|
62
|
+
import ScrollToEndButtonMiddleware, { ScrollToEndButtonComponentFactory } from '../types/ScrollToEndButtonMiddleware';
|
|
63
|
+
import StyleOptions from '../StyleOptions';
|
|
64
|
+
import TelemetryMeasurementEvent, { TelemetryExceptionMeasurementEvent } from '../types/TelemetryMeasurementEvent';
|
|
65
|
+
import ToastMiddleware from '../types/ToastMiddleware';
|
|
48
66
|
import Tracker from './internal/Tracker';
|
|
67
|
+
import TypingIndicatorMiddleware from '../types/TypingIndicatorMiddleware';
|
|
68
|
+
import useMarkAllAsAcknowledged from './useMarkAllAsAcknowledged';
|
|
49
69
|
import WebChatReduxContext, { useDispatch } from './internal/WebChatReduxContext';
|
|
50
|
-
import { default as WebChatAPIContext } from './internal/WebChatAPIContext';
|
|
51
70
|
|
|
52
71
|
import applyMiddleware, {
|
|
53
72
|
forLegacyRenderer as applyMiddlewareForLegacyRenderer,
|
|
54
73
|
forRenderer as applyMiddlewareForRenderer
|
|
55
74
|
} from './middleware/applyMiddleware';
|
|
56
75
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
import
|
|
76
|
+
// PrecompileGlobalize is a generated file and is not ES module. TypeScript don't work with UMD.
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
import PrecompiledGlobalize from '../external/PrecompiledGlobalize';
|
|
60
79
|
|
|
61
80
|
// List of Redux actions factory we are hoisting as Web Chat functions
|
|
62
81
|
const DISPATCHERS = {
|
|
@@ -82,7 +101,7 @@ const DISPATCHERS = {
|
|
|
82
101
|
submitSendBox
|
|
83
102
|
};
|
|
84
103
|
|
|
85
|
-
function createCardActionContext({ cardActionMiddleware, directLine, dispatch }) {
|
|
104
|
+
function createCardActionContext({ cardActionMiddleware, directLine, dispatch, markAllAsAcknowledged }) {
|
|
86
105
|
const runMiddleware = applyMiddleware(
|
|
87
106
|
'card action',
|
|
88
107
|
...singleToArray(cardActionMiddleware),
|
|
@@ -90,8 +109,10 @@ function createCardActionContext({ cardActionMiddleware, directLine, dispatch })
|
|
|
90
109
|
)({ dispatch });
|
|
91
110
|
|
|
92
111
|
return {
|
|
93
|
-
onCardAction: (cardAction, { target }: { target?: any } = {}) =>
|
|
94
|
-
|
|
112
|
+
onCardAction: (cardAction, { target }: { target?: any } = {}) => {
|
|
113
|
+
markAllAsAcknowledged();
|
|
114
|
+
|
|
115
|
+
return runMiddleware({
|
|
95
116
|
cardAction,
|
|
96
117
|
getSignInUrl:
|
|
97
118
|
cardAction.type === 'signin'
|
|
@@ -115,7 +136,8 @@ function createCardActionContext({ cardActionMiddleware, directLine, dispatch })
|
|
|
115
136
|
}
|
|
116
137
|
: null,
|
|
117
138
|
target
|
|
118
|
-
})
|
|
139
|
+
});
|
|
140
|
+
}
|
|
119
141
|
};
|
|
120
142
|
}
|
|
121
143
|
|
|
@@ -151,44 +173,60 @@ function mergeStringsOverrides(localizedStrings, language, overrideLocalizedStri
|
|
|
151
173
|
return { ...localizedStrings, ...overrideLocalizedStrings };
|
|
152
174
|
}
|
|
153
175
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
locale
|
|
176
|
-
onTelemetry:
|
|
177
|
-
overrideLocalizedStrings:
|
|
178
|
-
renderMarkdown:
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
sendTypingIndicator
|
|
182
|
-
styleOptions
|
|
183
|
-
toastMiddleware
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
176
|
+
// It seems "react/require-default-props" did not pick up `ComposerCore.defaultProps`.
|
|
177
|
+
// And it falsely complaint `optional?: string` must have a corresponding `ComposerCore.defaultProps.optional = undefined`, even we already set it below.
|
|
178
|
+
// Since we set both TypeScript `Props` class and `ComposerCore.propTypes`, this check will be done there as well.
|
|
179
|
+
// Ignoring it in TypeScript version should be safe, as we have `propTypes` version to protect us.
|
|
180
|
+
|
|
181
|
+
/* eslint-disable react/require-default-props */
|
|
182
|
+
type ComposerCoreProps = {
|
|
183
|
+
activityMiddleware?: OneOrMany<ActivityMiddleware>;
|
|
184
|
+
activityStatusMiddleware?: OneOrMany<ActivityStatusMiddleware>;
|
|
185
|
+
attachmentForScreenReaderMiddleware?: OneOrMany<AttachmentForScreenReaderMiddleware>;
|
|
186
|
+
attachmentMiddleware?: OneOrMany<AttachmentMiddleware>;
|
|
187
|
+
avatarMiddleware?: OneOrMany<AvatarMiddleware>;
|
|
188
|
+
cardActionMiddleware?: OneOrMany<CardActionMiddleware>;
|
|
189
|
+
children?: ReactNode;
|
|
190
|
+
dir?: string;
|
|
191
|
+
directLine: DirectLineJSBotConnection;
|
|
192
|
+
disabled?: boolean;
|
|
193
|
+
downscaleImageToDataURL?: (blob: Blob, maxWidth: number, maxHeight: number, type: string, quality: number) => string;
|
|
194
|
+
grammars?: any;
|
|
195
|
+
groupActivitiesMiddleware?: OneOrMany<GroupActivitiesMiddleware>;
|
|
196
|
+
internalErrorBoxClass?: React.Component | Function;
|
|
197
|
+
locale?: string;
|
|
198
|
+
onTelemetry?: (event: TelemetryMeasurementEvent) => void;
|
|
199
|
+
overrideLocalizedStrings?: LocalizedStrings | ((strings: LocalizedStrings, language: string) => LocalizedStrings);
|
|
200
|
+
renderMarkdown?: (markdown: string, { markdownRespectCRLF: boolean }, { externalLinkAlt: string }) => string;
|
|
201
|
+
scrollToEndButtonMiddleware?: OneOrMany<ScrollToEndButtonMiddleware>;
|
|
202
|
+
selectVoice?: (voices: typeof window.SpeechSynthesisVoice[], activity: DirectLineActivity) => void;
|
|
203
|
+
sendTypingIndicator?: boolean;
|
|
204
|
+
styleOptions?: StyleOptions;
|
|
205
|
+
toastMiddleware?: OneOrMany<ToastMiddleware>;
|
|
206
|
+
typingIndicatorMiddleware?: OneOrMany<TypingIndicatorMiddleware>;
|
|
207
|
+
userID?: string;
|
|
208
|
+
username?: string;
|
|
209
|
+
|
|
210
|
+
/** @deprecated Please use "activityMiddleware" instead. */
|
|
211
|
+
activityRenderer?: any; // TODO: [P4] Remove on or after 2022-06-15.
|
|
212
|
+
/** @deprecated Please use "activityStatusMiddleware" instead. */
|
|
213
|
+
activityStatusRenderer?: any; // TODO: [P4] Remove on or after 2022-06-15.
|
|
214
|
+
/** @deprecated Please use "attachmentMiddleware" instead. */
|
|
215
|
+
attachmentRenderer?: any; // TODO: [P4] Remove on or after 2022-06-15.
|
|
216
|
+
/** @deprecated Please use "avatarMiddleware" instead. */
|
|
217
|
+
avatarRenderer?: any; // TODO: [P4] Remove on or after 2022-06-15.
|
|
218
|
+
/** @deprecated Please use "styleOptions.groupTimestamp" instead. */
|
|
219
|
+
groupTimestamp?: boolean | number; // TODO: [P4] Remove on or after 2022-01-01
|
|
220
|
+
/** @deprecated Please use "styleOptions.sendTimeout" instead. */
|
|
221
|
+
sendTimeout?: number; // TODO: [P4] Remove on or after 2022-01-01.
|
|
222
|
+
/** @deprecated Please use "toastMiddleware" instead. */
|
|
223
|
+
toastRenderer?: any; // TODO: [P4] Remove on or after 2022-06-15.
|
|
224
|
+
/** @deprecated Please use "typingIndicatorRenderer" instead. */
|
|
225
|
+
typingIndicatorRenderer?: any; // TODO: [P4] Remove on or after 2022-06-15.
|
|
189
226
|
};
|
|
227
|
+
/* eslint-enable react/require-default-props */
|
|
190
228
|
|
|
191
|
-
const
|
|
229
|
+
const ComposerCore: FC<ComposerCoreProps> = ({
|
|
192
230
|
activityMiddleware,
|
|
193
231
|
activityRenderer,
|
|
194
232
|
activityStatusMiddleware,
|
|
@@ -212,6 +250,7 @@ const Composer: FC<ComposerProps> = ({
|
|
|
212
250
|
onTelemetry,
|
|
213
251
|
overrideLocalizedStrings,
|
|
214
252
|
renderMarkdown,
|
|
253
|
+
scrollToEndButtonMiddleware,
|
|
215
254
|
selectVoice,
|
|
216
255
|
sendTimeout,
|
|
217
256
|
sendTypingIndicator,
|
|
@@ -262,16 +301,17 @@ const Composer: FC<ComposerProps> = ({
|
|
|
262
301
|
};
|
|
263
302
|
}, [dispatch, directLine, userID, username]);
|
|
264
303
|
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
dispatch
|
|
269
|
-
|
|
304
|
+
const markAllAsAcknowledged = useMarkAllAsAcknowledged();
|
|
305
|
+
|
|
306
|
+
const cardActionContext = useMemo(
|
|
307
|
+
() => createCardActionContext({ cardActionMiddleware, directLine, dispatch, markAllAsAcknowledged }),
|
|
308
|
+
[cardActionMiddleware, directLine, dispatch, markAllAsAcknowledged]
|
|
309
|
+
);
|
|
270
310
|
|
|
271
|
-
const patchedSelectVoice = useMemo(
|
|
272
|
-
locale,
|
|
273
|
-
selectVoice
|
|
274
|
-
|
|
311
|
+
const patchedSelectVoice = useMemo(
|
|
312
|
+
() => selectVoice || defaultSelectVoice.bind(null, { language: locale }),
|
|
313
|
+
[locale, selectVoice]
|
|
314
|
+
);
|
|
275
315
|
|
|
276
316
|
const groupActivitiesContext = useMemo(
|
|
277
317
|
() =>
|
|
@@ -283,7 +323,13 @@ const Composer: FC<ComposerProps> = ({
|
|
|
283
323
|
);
|
|
284
324
|
|
|
285
325
|
const hoistedDispatchers = useMemo(
|
|
286
|
-
() =>
|
|
326
|
+
() =>
|
|
327
|
+
mapMap(
|
|
328
|
+
DISPATCHERS,
|
|
329
|
+
dispatcher =>
|
|
330
|
+
(...args) =>
|
|
331
|
+
dispatch(dispatcher(...args))
|
|
332
|
+
),
|
|
287
333
|
[dispatch]
|
|
288
334
|
);
|
|
289
335
|
|
|
@@ -292,14 +338,14 @@ const Composer: FC<ComposerProps> = ({
|
|
|
292
338
|
[locale, overrideLocalizedStrings]
|
|
293
339
|
);
|
|
294
340
|
|
|
295
|
-
const localizedGlobalize = useMemo(() => {
|
|
341
|
+
const localizedGlobalize = useMemo<PrecompiledGlobalizeType>(() => {
|
|
296
342
|
const { GLOBALIZE, GLOBALIZE_LANGUAGE } = patchedLocalizedStrings || {};
|
|
297
343
|
|
|
298
344
|
return GLOBALIZE || (GLOBALIZE_LANGUAGE && PrecompiledGlobalize(GLOBALIZE_LANGUAGE)) || PrecompiledGlobalize('en');
|
|
299
345
|
}, [patchedLocalizedStrings]);
|
|
300
346
|
|
|
301
347
|
const trackDimension = useCallback(
|
|
302
|
-
(name, data) => {
|
|
348
|
+
(name: string, data: any) => {
|
|
303
349
|
if (!name || typeof name !== 'string') {
|
|
304
350
|
return console.warn('botframework-webchat: Telemetry dimension name must be a string.');
|
|
305
351
|
}
|
|
@@ -331,13 +377,15 @@ const Composer: FC<ComposerProps> = ({
|
|
|
331
377
|
'activity',
|
|
332
378
|
{ strict: false },
|
|
333
379
|
...singleToArray(activityMiddleware),
|
|
334
|
-
() =>
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
380
|
+
() =>
|
|
381
|
+
() =>
|
|
382
|
+
({ activity }) => {
|
|
383
|
+
if (activity) {
|
|
384
|
+
throw new Error(`No renderer for activity of type "${activity.type}"`);
|
|
385
|
+
} else {
|
|
386
|
+
throw new Error('No activity to render');
|
|
387
|
+
}
|
|
339
388
|
}
|
|
340
|
-
}
|
|
341
389
|
)({})
|
|
342
390
|
);
|
|
343
391
|
}, [activityMiddleware, activityRenderer]);
|
|
@@ -365,19 +413,21 @@ const Composer: FC<ComposerProps> = ({
|
|
|
365
413
|
'attachment for screen reader',
|
|
366
414
|
{ strict: true },
|
|
367
415
|
...singleToArray(attachmentForScreenReaderMiddleware),
|
|
368
|
-
() =>
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
416
|
+
() =>
|
|
417
|
+
() =>
|
|
418
|
+
({ attachment }) => {
|
|
419
|
+
if (attachment) {
|
|
420
|
+
console.warn(`No renderer for attachment for screen reader of type "${attachment.contentType}"`);
|
|
421
|
+
return false;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
return () => {
|
|
425
|
+
/**
|
|
426
|
+
* @todo TODO: [P4] Might be able to throw without returning a function -- investigate and possibly fix
|
|
427
|
+
*/
|
|
428
|
+
throw new Error('No attachment to render');
|
|
429
|
+
};
|
|
372
430
|
}
|
|
373
|
-
|
|
374
|
-
return () => {
|
|
375
|
-
/**
|
|
376
|
-
* @todo TODO: [P4] Might be able to throw without returning a function -- investigate and possibly fix
|
|
377
|
-
*/
|
|
378
|
-
throw new Error('No attachment to render');
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
431
|
)({}),
|
|
382
432
|
[attachmentForScreenReaderMiddleware]
|
|
383
433
|
);
|
|
@@ -395,13 +445,15 @@ const Composer: FC<ComposerProps> = ({
|
|
|
395
445
|
return applyMiddlewareForLegacyRenderer(
|
|
396
446
|
'attachment',
|
|
397
447
|
...singleToArray(attachmentMiddleware),
|
|
398
|
-
() =>
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
448
|
+
() =>
|
|
449
|
+
() =>
|
|
450
|
+
({ attachment }) => {
|
|
451
|
+
if (attachment) {
|
|
452
|
+
throw new Error(`No renderer for attachment of type "${attachment.contentType}"`);
|
|
453
|
+
} else {
|
|
454
|
+
throw new Error('No attachment to render');
|
|
455
|
+
}
|
|
403
456
|
}
|
|
404
|
-
}
|
|
405
457
|
)({});
|
|
406
458
|
}, [attachmentMiddleware, attachmentRenderer]);
|
|
407
459
|
|
|
@@ -413,8 +465,11 @@ const Composer: FC<ComposerProps> = ({
|
|
|
413
465
|
|
|
414
466
|
return (
|
|
415
467
|
avatarRenderer ||
|
|
416
|
-
applyMiddlewareForRenderer(
|
|
417
|
-
|
|
468
|
+
applyMiddlewareForRenderer(
|
|
469
|
+
'avatar',
|
|
470
|
+
{ strict: false },
|
|
471
|
+
...singleToArray(avatarMiddleware),
|
|
472
|
+
() => () => () => false
|
|
418
473
|
)({})
|
|
419
474
|
);
|
|
420
475
|
}, [avatarMiddleware, avatarRenderer]);
|
|
@@ -431,13 +486,15 @@ const Composer: FC<ComposerProps> = ({
|
|
|
431
486
|
'toast',
|
|
432
487
|
{ strict: false },
|
|
433
488
|
...singleToArray(toastMiddleware),
|
|
434
|
-
() =>
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
489
|
+
() =>
|
|
490
|
+
() =>
|
|
491
|
+
({ notification }) => {
|
|
492
|
+
if (notification) {
|
|
493
|
+
throw new Error(`No renderer for notification of type "${notification.contentType}"`);
|
|
494
|
+
} else {
|
|
495
|
+
throw new Error('No notification to render');
|
|
496
|
+
}
|
|
439
497
|
}
|
|
440
|
-
}
|
|
441
498
|
)({})
|
|
442
499
|
);
|
|
443
500
|
}, [toastMiddleware, toastRenderer]);
|
|
@@ -459,6 +516,17 @@ const Composer: FC<ComposerProps> = ({
|
|
|
459
516
|
);
|
|
460
517
|
}, [typingIndicatorMiddleware, typingIndicatorRenderer]);
|
|
461
518
|
|
|
519
|
+
const scrollToEndButtonRenderer: ScrollToEndButtonComponentFactory = useMemo(
|
|
520
|
+
() =>
|
|
521
|
+
applyMiddlewareForRenderer(
|
|
522
|
+
'scroll to end button',
|
|
523
|
+
{ strict: true },
|
|
524
|
+
...singleToArray(scrollToEndButtonMiddleware),
|
|
525
|
+
() => () => () => false
|
|
526
|
+
)() as any,
|
|
527
|
+
[scrollToEndButtonMiddleware]
|
|
528
|
+
);
|
|
529
|
+
|
|
462
530
|
/**
|
|
463
531
|
* This is a heavy function, and it is expected to be only called when there is a need to recreate business logic, e.g.
|
|
464
532
|
* - User ID changed, causing all send* functions to be updated
|
|
@@ -491,6 +559,7 @@ const Composer: FC<ComposerProps> = ({
|
|
|
491
559
|
localizedStrings: patchedLocalizedStrings,
|
|
492
560
|
onTelemetry,
|
|
493
561
|
renderMarkdown,
|
|
562
|
+
scrollToEndButtonRenderer,
|
|
494
563
|
selectVoice: patchedSelectVoice,
|
|
495
564
|
sendTypingIndicator,
|
|
496
565
|
styleOptions: patchedStyleOptions,
|
|
@@ -525,6 +594,7 @@ const Composer: FC<ComposerProps> = ({
|
|
|
525
594
|
patchedToastRenderer,
|
|
526
595
|
patchedTypingIndicatorRenderer,
|
|
527
596
|
renderMarkdown,
|
|
597
|
+
scrollToEndButtonRenderer,
|
|
528
598
|
sendTypingIndicator,
|
|
529
599
|
telemetryDimensionsRef,
|
|
530
600
|
trackDimension,
|
|
@@ -541,59 +611,13 @@ const Composer: FC<ComposerProps> = ({
|
|
|
541
611
|
);
|
|
542
612
|
};
|
|
543
613
|
|
|
544
|
-
// We will create a Redux store if it was not passed in
|
|
545
|
-
const ComposeWithStore: FC<ComposerProps & { store: any }> = ({
|
|
546
|
-
internalRenderErrorBox,
|
|
547
|
-
onTelemetry,
|
|
548
|
-
store,
|
|
549
|
-
...props
|
|
550
|
-
}) => {
|
|
551
|
-
const [error, setError] = useState();
|
|
552
|
-
|
|
553
|
-
const handleError = useCallback(
|
|
554
|
-
error => {
|
|
555
|
-
console.error('botframework-webchat: Uncaught exception', { error });
|
|
556
|
-
|
|
557
|
-
onTelemetry && onTelemetry(createCustomEvent('exception', { error, fatal: true }));
|
|
558
|
-
setError(error);
|
|
559
|
-
},
|
|
560
|
-
[onTelemetry, setError]
|
|
561
|
-
);
|
|
562
|
-
|
|
563
|
-
const memoizedStore = useMemo(() => store || createStore(), [store]);
|
|
564
|
-
|
|
565
|
-
return error ? (
|
|
566
|
-
!!internalRenderErrorBox && internalRenderErrorBox({ error, type: 'uncaught exception' })
|
|
567
|
-
) : (
|
|
568
|
-
<ErrorBoundary onError={handleError}>
|
|
569
|
-
<Provider context={WebChatReduxContext} store={memoizedStore}>
|
|
570
|
-
<Composer internalRenderErrorBox={internalRenderErrorBox} onTelemetry={onTelemetry} {...props} />
|
|
571
|
-
</Provider>
|
|
572
|
-
</ErrorBoundary>
|
|
573
|
-
);
|
|
574
|
-
};
|
|
575
|
-
|
|
576
|
-
ComposeWithStore.defaultProps = {
|
|
577
|
-
internalRenderErrorBox: undefined,
|
|
578
|
-
onTelemetry: undefined,
|
|
579
|
-
store: undefined
|
|
580
|
-
};
|
|
581
|
-
|
|
582
|
-
ComposeWithStore.propTypes = {
|
|
583
|
-
internalRenderErrorBox: PropTypes.any,
|
|
584
|
-
onTelemetry: PropTypes.func,
|
|
585
|
-
store: PropTypes.any
|
|
586
|
-
};
|
|
587
|
-
|
|
588
|
-
export default ComposeWithStore;
|
|
589
|
-
|
|
590
614
|
/**
|
|
591
615
|
* @todo TODO: [P3] We should consider moving some data from Redux store to props
|
|
592
616
|
* Although we use `connectToWebChat` to hide the details of accessor of Redux store,
|
|
593
617
|
* we should clean up the responsibility between Context and Redux store
|
|
594
618
|
* We should decide which data is needed for React but not in other environment such as CLI/VSCode
|
|
595
619
|
*/
|
|
596
|
-
|
|
620
|
+
ComposerCore.defaultProps = {
|
|
597
621
|
activityMiddleware: undefined,
|
|
598
622
|
activityRenderer: undefined,
|
|
599
623
|
activityStatusMiddleware: undefined,
|
|
@@ -616,6 +640,7 @@ Composer.defaultProps = {
|
|
|
616
640
|
onTelemetry: undefined,
|
|
617
641
|
overrideLocalizedStrings: undefined,
|
|
618
642
|
renderMarkdown: undefined,
|
|
643
|
+
scrollToEndButtonMiddleware: undefined,
|
|
619
644
|
selectVoice: undefined,
|
|
620
645
|
sendTimeout: undefined,
|
|
621
646
|
sendTypingIndicator: false,
|
|
@@ -628,7 +653,7 @@ Composer.defaultProps = {
|
|
|
628
653
|
username: ''
|
|
629
654
|
};
|
|
630
655
|
|
|
631
|
-
|
|
656
|
+
ComposerCore.propTypes = {
|
|
632
657
|
activityMiddleware: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.func), PropTypes.func]),
|
|
633
658
|
activityRenderer: PropTypes.func,
|
|
634
659
|
activityStatusMiddleware: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.func), PropTypes.func]),
|
|
@@ -664,6 +689,7 @@ Composer.propTypes = {
|
|
|
664
689
|
onTelemetry: PropTypes.func,
|
|
665
690
|
overrideLocalizedStrings: PropTypes.oneOfType([PropTypes.any, PropTypes.func]),
|
|
666
691
|
renderMarkdown: PropTypes.func,
|
|
692
|
+
scrollToEndButtonMiddleware: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.func), PropTypes.func]),
|
|
667
693
|
selectVoice: PropTypes.func,
|
|
668
694
|
sendTimeout: PropTypes.number,
|
|
669
695
|
sendTypingIndicator: PropTypes.bool,
|
|
@@ -675,3 +701,56 @@ Composer.propTypes = {
|
|
|
675
701
|
userID: PropTypes.string,
|
|
676
702
|
username: PropTypes.string
|
|
677
703
|
};
|
|
704
|
+
|
|
705
|
+
type ComposerProps = ComposerCoreProps & {
|
|
706
|
+
internalRenderErrorBox?: any;
|
|
707
|
+
store?: any;
|
|
708
|
+
};
|
|
709
|
+
|
|
710
|
+
// We will create a Redux store if it was not passed in
|
|
711
|
+
const Composer: FC<ComposerProps> = ({ internalRenderErrorBox, onTelemetry, store, ...props }) => {
|
|
712
|
+
const [error, setError] = useState();
|
|
713
|
+
|
|
714
|
+
const handleError = useCallback(
|
|
715
|
+
error => {
|
|
716
|
+
console.error('botframework-webchat: Uncaught exception', { error });
|
|
717
|
+
|
|
718
|
+
onTelemetry &&
|
|
719
|
+
onTelemetry(createCustomEvent('exception', { error, fatal: true }) as TelemetryExceptionMeasurementEvent);
|
|
720
|
+
setError(error);
|
|
721
|
+
},
|
|
722
|
+
[onTelemetry, setError]
|
|
723
|
+
);
|
|
724
|
+
|
|
725
|
+
const memoizedStore = useMemo(() => store || createStore(), [store]);
|
|
726
|
+
|
|
727
|
+
return error ? (
|
|
728
|
+
!!internalRenderErrorBox && internalRenderErrorBox({ error, type: 'uncaught exception' })
|
|
729
|
+
) : (
|
|
730
|
+
<ErrorBoundary onError={handleError}>
|
|
731
|
+
<Provider context={WebChatReduxContext} store={memoizedStore}>
|
|
732
|
+
<ActivityKeyerComposer>
|
|
733
|
+
<ActivityAcknowledgementComposer>
|
|
734
|
+
<ComposerCore onTelemetry={onTelemetry} {...props} />
|
|
735
|
+
</ActivityAcknowledgementComposer>
|
|
736
|
+
</ActivityKeyerComposer>
|
|
737
|
+
</Provider>
|
|
738
|
+
</ErrorBoundary>
|
|
739
|
+
);
|
|
740
|
+
};
|
|
741
|
+
|
|
742
|
+
Composer.defaultProps = {
|
|
743
|
+
internalRenderErrorBox: undefined,
|
|
744
|
+
onTelemetry: undefined,
|
|
745
|
+
store: undefined
|
|
746
|
+
};
|
|
747
|
+
|
|
748
|
+
Composer.propTypes = {
|
|
749
|
+
internalRenderErrorBox: PropTypes.any,
|
|
750
|
+
onTelemetry: PropTypes.func,
|
|
751
|
+
store: PropTypes.any
|
|
752
|
+
};
|
|
753
|
+
|
|
754
|
+
export default Composer;
|
|
755
|
+
|
|
756
|
+
export type { ComposerProps };
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import useActiveTyping from './useActiveTyping';
|
|
2
2
|
import useActivities from './useActivities';
|
|
3
|
+
import useActivityKeys from './useActivityKeys';
|
|
4
|
+
import useActivityKeysByRead from './useActivityKeysByRead';
|
|
3
5
|
import useAvatarForBot from './useAvatarForBot';
|
|
4
6
|
import useAvatarForUser from './useAvatarForUser';
|
|
5
7
|
import useByteFormatter from './useByteFormatter';
|
|
@@ -8,6 +10,7 @@ import useCreateActivityRenderer from './useCreateActivityRenderer';
|
|
|
8
10
|
import useCreateActivityStatusRenderer from './useCreateActivityStatusRenderer';
|
|
9
11
|
import useCreateAttachmentForScreenReaderRenderer from './useCreateAttachmentForScreenReaderRenderer';
|
|
10
12
|
import useCreateAvatarRenderer from './useCreateAvatarRenderer';
|
|
13
|
+
import useCreateScrollToEndButtonRenderer from './useCreateScrollToEndButtonRenderer';
|
|
11
14
|
import useDateFormatter from './useDateFormatter';
|
|
12
15
|
import useDebouncedNotifications from './useDebouncedNotifications';
|
|
13
16
|
import useDictateInterims from './useDictateInterims';
|
|
@@ -16,16 +19,24 @@ import useDirection from './useDirection';
|
|
|
16
19
|
import useDisabled from './useDisabled';
|
|
17
20
|
import useDismissNotification from './useDismissNotification';
|
|
18
21
|
import useEmitTypingIndicator from './useEmitTypingIndicator';
|
|
22
|
+
import useGetActivityByKey from './useGetActivityByKey';
|
|
23
|
+
import useGetHasAcknowledgedByActivityKey from './useGetHasAcknowledgedByActivityKey';
|
|
24
|
+
import useGetKeyByActivity from './useGetKeyByActivity';
|
|
25
|
+
import useGetKeyByActivityId from './useGetKeyByActivityId';
|
|
19
26
|
import useGetSendTimeoutForActivity from './useGetSendTimeoutForActivity';
|
|
20
27
|
import useGrammars from './useGrammars';
|
|
21
28
|
import useGroupActivities from './useGroupActivities';
|
|
22
29
|
import useGroupTimestamp from './useGroupTimestamp';
|
|
23
30
|
import useLanguage from './useLanguage';
|
|
31
|
+
import useLastAcknowledgedActivityKey from './useLastAcknowledgedActivityKey';
|
|
32
|
+
import useLastReadActivityKey from './useLastReadActivityKey';
|
|
24
33
|
import useLastTypingAt from './useLastTypingAt';
|
|
25
34
|
import useLocalize from './useLocalize'; // Deprecated on or after 2022-02-12
|
|
26
35
|
import useLocalizeDate from './useLocalizeDate'; // Deprecated on or after 2022-02-12
|
|
27
36
|
import useLocalizer from './useLocalizer';
|
|
28
37
|
import useMarkActivityAsSpoken from './useMarkActivityAsSpoken';
|
|
38
|
+
import useMarkActivityKeyAsRead from './useMarkActivityKeyAsRead';
|
|
39
|
+
import useMarkAllAsAcknowledged from './useMarkAllAsAcknowledged';
|
|
29
40
|
import usePerformCardAction from './usePerformCardAction';
|
|
30
41
|
import usePostActivity from './usePostActivity';
|
|
31
42
|
import useReferenceGrammarID from './useReferenceGrammarID';
|
|
@@ -63,6 +74,8 @@ import useVoiceSelector from './useVoiceSelector';
|
|
|
63
74
|
export {
|
|
64
75
|
useActiveTyping,
|
|
65
76
|
useActivities,
|
|
77
|
+
useActivityKeys,
|
|
78
|
+
useActivityKeysByRead,
|
|
66
79
|
useAvatarForBot,
|
|
67
80
|
useAvatarForUser,
|
|
68
81
|
useByteFormatter,
|
|
@@ -71,6 +84,7 @@ export {
|
|
|
71
84
|
useCreateActivityStatusRenderer,
|
|
72
85
|
useCreateAttachmentForScreenReaderRenderer,
|
|
73
86
|
useCreateAvatarRenderer,
|
|
87
|
+
useCreateScrollToEndButtonRenderer,
|
|
74
88
|
useDateFormatter,
|
|
75
89
|
useDebouncedNotifications,
|
|
76
90
|
useDictateInterims,
|
|
@@ -79,16 +93,24 @@ export {
|
|
|
79
93
|
useDisabled,
|
|
80
94
|
useDismissNotification,
|
|
81
95
|
useEmitTypingIndicator,
|
|
96
|
+
useGetActivityByKey,
|
|
97
|
+
useGetHasAcknowledgedByActivityKey,
|
|
98
|
+
useGetKeyByActivity,
|
|
99
|
+
useGetKeyByActivityId,
|
|
82
100
|
useGetSendTimeoutForActivity,
|
|
83
101
|
useGrammars,
|
|
84
102
|
useGroupActivities,
|
|
85
103
|
useGroupTimestamp,
|
|
86
104
|
useLanguage,
|
|
105
|
+
useLastAcknowledgedActivityKey,
|
|
106
|
+
useLastReadActivityKey,
|
|
87
107
|
useLastTypingAt,
|
|
88
108
|
useLocalize,
|
|
89
109
|
useLocalizeDate,
|
|
90
110
|
useLocalizer,
|
|
91
111
|
useMarkActivityAsSpoken,
|
|
112
|
+
useMarkActivityKeyAsRead,
|
|
113
|
+
useMarkAllAsAcknowledged,
|
|
92
114
|
usePerformCardAction,
|
|
93
115
|
usePostActivity,
|
|
94
116
|
useReferenceGrammarID,
|