@envive-ai/react-hooks 0.3.7 → 0.3.9
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/dist/_virtual/rolldown_runtime.cjs +0 -2
- package/dist/application/commerce-api.cjs +1 -1
- package/dist/application/commerce-api.js +1 -1
- package/dist/application/models/chatElementDisplayLocationV3.cjs +5 -1
- package/dist/application/models/chatElementDisplayLocationV3.d.cts +5 -1
- package/dist/application/models/chatElementDisplayLocationV3.d.ts +5 -1
- package/dist/application/models/chatElementDisplayLocationV3.js +5 -1
- package/dist/application/models/frontendConfigV3.d.cts +2 -2
- package/dist/application/models/frontendConfigV3.d.ts +2 -2
- package/dist/application/models/variantInfo/variantInfo.cjs +2 -2
- package/dist/application/models/variantInfo/variantInfo.d.cts +2 -2
- package/dist/application/models/variantInfo/variantInfo.d.ts +2 -2
- package/dist/application/models/variantInfo/variantInfo.js +2 -2
- package/dist/application/utils/widgetTextRequestToApiRequest.cjs +6 -2
- package/dist/application/utils/widgetTextRequestToApiRequest.js +6 -2
- package/dist/atoms/app/index.cjs +4 -4
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +2 -2
- package/dist/atoms/app/index.js +4 -4
- package/dist/atoms/app/variant.d.cts +6 -6
- package/dist/atoms/app/variant.d.ts +6 -6
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +17 -17
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.cjs +7 -1
- package/dist/atoms/chat/index.d.cts +5 -4
- package/dist/atoms/chat/index.d.ts +5 -4
- package/dist/atoms/chat/index.js +3 -2
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.cjs +1 -0
- package/dist/atoms/chat/messageQueue.d.cts +31 -0
- package/dist/atoms/chat/messageQueue.d.ts +31 -0
- package/dist/atoms/chat/messageQueue.js +1 -1
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.cjs +46 -0
- package/dist/atoms/chat/replies.d.cts +14 -0
- package/dist/atoms/chat/replies.d.ts +14 -0
- package/dist/atoms/chat/replies.js +45 -0
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/index.cjs +2 -2
- package/dist/atoms/org/index.js +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
- package/dist/atoms/search/chatSearch.cjs +1 -1
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/chatSearch.js +1 -1
- package/dist/atoms/search/searchAPI.cjs +1 -1
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/searchAPI.js +1 -1
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +6 -4
- package/dist/contexts/amplitudeContext/amplitudeContext.js +6 -4
- package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +66 -0
- package/dist/contexts/enviveContext/WindowChatToggleBinder.js +65 -0
- package/dist/contexts/enviveContext/enviveContext.cjs +40 -17
- package/dist/contexts/enviveContext/enviveContext.d.cts +4 -1
- package/dist/contexts/enviveContext/enviveContext.d.ts +4 -1
- package/dist/contexts/enviveContext/enviveContext.js +41 -18
- package/dist/contexts/enviveContext/types.d.cts +1 -1
- package/dist/contexts/enviveContext/types.d.ts +1 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +56 -2
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +6 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +6 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +56 -2
- package/dist/contexts/graphqlContext/graphqlContext.cjs +15 -10
- package/dist/contexts/graphqlContext/graphqlContext.js +11 -6
- package/dist/contexts/graphqlContext/mockV3Config.cjs +65 -58
- package/dist/contexts/graphqlContext/mockV3Config.js +27 -21
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +29 -1
- package/dist/contexts/hardcopyContext/hardcopyContext.js +29 -1
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +1 -1
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +1 -1
- package/dist/contexts/pageContext/mapping.cjs +9 -1
- package/dist/contexts/pageContext/mapping.js +9 -1
- package/dist/contexts/pageContext/pageContext.cjs +8 -3
- package/dist/contexts/pageContext/pageContext.d.cts +2 -1
- package/dist/contexts/pageContext/pageContext.d.ts +2 -1
- package/dist/contexts/pageContext/pageContext.js +8 -3
- package/dist/contexts/pageContext/types.d.cts +11 -3
- package/dist/contexts/pageContext/types.d.ts +11 -3
- package/dist/contexts/salesAgentContext/chatAPI.cjs +44 -8
- package/dist/contexts/salesAgentContext/chatAPI.d.cts +7 -6
- package/dist/contexts/salesAgentContext/chatAPI.d.ts +7 -6
- package/dist/contexts/salesAgentContext/chatAPI.js +44 -8
- package/dist/contexts/salesAgentContext/formSubmittedUtils.cjs +37 -0
- package/dist/contexts/salesAgentContext/formSubmittedUtils.js +36 -0
- package/dist/contexts/salesAgentContext/index.d.cts +2 -2
- package/dist/contexts/salesAgentContext/index.d.ts +2 -2
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +39 -6
- package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +11 -4
- package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +11 -4
- package/dist/contexts/salesAgentContext/salesAgentContext.js +40 -7
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +13 -7
- package/dist/contexts/salesAgentContext/salesAgentService.js +13 -7
- package/dist/contexts/searchContext/searchContext.cjs +1 -1
- package/dist/contexts/searchContext/searchContext.js +1 -1
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/typesV3.cjs +2 -7
- package/dist/contexts/typesV3.d.cts +19 -11
- package/dist/contexts/typesV3.d.ts +21 -13
- package/dist/contexts/typesV3.js +3 -7
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +22 -29
- package/dist/contexts/userIdentityContext/userIdentityContext.d.cts +9 -8
- package/dist/contexts/userIdentityContext/userIdentityContext.d.ts +9 -8
- package/dist/contexts/userIdentityContext/userIdentityContext.js +22 -29
- package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +2 -1
- package/dist/contexts/widgetConfigContext/widgetConfigContext.js +2 -1
- package/dist/hooks/ElementObserver/useElementObserver.cjs +3 -2
- package/dist/hooks/ElementObserver/useElementObserver.js +3 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/Search/useSearch.cjs +2 -2
- package/dist/hooks/Search/useSearch.js +2 -2
- package/dist/hooks/Search/useSearchInput.cjs +2 -2
- package/dist/hooks/Search/useSearchInput.js +2 -2
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/mocks/index.cjs +5 -0
- package/dist/mocks/index.d.cts +2 -0
- package/dist/mocks/index.d.ts +2 -0
- package/dist/mocks/index.js +3 -0
- package/dist/mocks/salesAgentMockData.cjs +207 -0
- package/dist/mocks/salesAgentMockData.d.cts +11 -0
- package/dist/mocks/salesAgentMockData.d.ts +11 -0
- package/dist/mocks/salesAgentMockData.js +204 -0
- package/dist/services/amplitudeService/amplitudeService.cjs +77 -12
- package/dist/services/amplitudeService/amplitudeService.d.cts +12 -3
- package/dist/services/amplitudeService/amplitudeService.d.ts +12 -3
- package/dist/services/amplitudeService/amplitudeService.js +77 -12
- package/dist/services/userIdentityService/index.cjs +3 -0
- package/dist/services/userIdentityService/index.d.cts +2 -0
- package/dist/services/userIdentityService/index.d.ts +2 -0
- package/dist/services/userIdentityService/index.js +3 -0
- package/dist/services/userIdentityService/userIdentityService.cjs +49 -0
- package/dist/services/userIdentityService/userIdentityService.d.cts +19 -0
- package/dist/services/userIdentityService/userIdentityService.d.ts +19 -0
- package/dist/services/userIdentityService/userIdentityService.js +48 -0
- package/package.json +18 -5
- package/src/application/models/chatElementDisplayLocationV3.ts +4 -0
- package/src/application/models/frontendConfigV3.ts +1 -1
- package/src/application/models/variantInfo/variantInfo.ts +1 -1
- package/src/application/utils/widgetTextRequestToApiRequest.ts +7 -5
- package/src/atoms/app/index.ts +9 -7
- package/src/atoms/chat/index.ts +1 -0
- package/src/atoms/chat/replies.ts +56 -0
- package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +47 -66
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +4 -1
- package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +66 -0
- package/src/contexts/enviveContext/enviveContext.tsx +50 -7
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +101 -2
- package/src/contexts/graphqlContext/graphqlContext.tsx +11 -2
- package/src/contexts/graphqlContext/mockV3Config.ts +19 -4
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +29 -0
- package/src/contexts/pageContext/mapping.ts +16 -1
- package/src/contexts/pageContext/pageContext.tsx +12 -3
- package/src/contexts/pageContext/types.ts +16 -1
- package/src/contexts/salesAgentContext/chatAPI.ts +52 -11
- package/src/contexts/salesAgentContext/formSubmittedUtils.ts +57 -0
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +71 -5
- package/src/contexts/salesAgentContext/salesAgentService.ts +15 -9
- package/src/contexts/searchContext/__tests__/searchContext.test.tsx +3 -1
- package/src/contexts/typesV3.ts +22 -12
- package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +18 -131
- package/src/contexts/userIdentityContext/userIdentityContext.tsx +47 -41
- package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -0
- package/src/hooks/ElementObserver/useElementObserver.ts +2 -1
- package/src/hooks/Search/__tests__/useSearch.test.tsx +11 -1
- package/src/mocks/index.ts +1 -0
- package/src/mocks/salesAgentMockData.ts +247 -0
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +17 -0
- package/src/services/amplitudeService/amplitudeService.ts +106 -11
- package/src/services/userIdentityService/index.ts +1 -0
- package/src/services/userIdentityService/userIdentityService.ts +64 -0
- package/dist/_virtual/rolldown_runtime.js +0 -29
- package/dist/contexts/featureFlagContext/featureFlagContext.cjs +0 -105
- package/dist/contexts/featureFlagContext/featureFlagContext.d.cts +0 -19
- package/dist/contexts/featureFlagContext/featureFlagContext.d.ts +0 -19
- package/dist/contexts/featureFlagContext/featureFlagContext.js +0 -102
- package/dist/contexts/featureFlagContext/index.cjs +0 -4
- package/dist/contexts/featureFlagContext/index.d.cts +0 -2
- package/dist/contexts/featureFlagContext/index.d.ts +0 -2
- package/dist/contexts/featureFlagContext/index.js +0 -3
- package/dist/node_modules/classnames/index.cjs +0 -52
- package/dist/node_modules/classnames/index.js +0 -49
- package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.cjs +0 -2
- package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.js +0 -4
- package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.cjs +0 -16
- package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.js +0 -17
- package/dist/packages/components-v3/dist/ChatHeader/components/Handle.cjs +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/Handle.js +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/components/Layout.cjs +0 -4
- package/dist/packages/components-v3/dist/ChatHeader/components/Layout.js +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/Logo.cjs +0 -3
- package/dist/packages/components-v3/dist/ChatHeader/components/Logo.js +0 -5
- package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.cjs +0 -7
- package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.js +0 -9
- package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.cjs +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.js +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/components/index.cjs +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/index.js +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +0 -22
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +0 -23
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.cjs +0 -58
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.js +0 -59
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.js +0 -9
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +0 -3
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.cjs +0 -12
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.js +0 -13
- package/dist/packages/components-v3/dist/ChatHeader/index.cjs +0 -2
- package/dist/packages/components-v3/dist/ChatHeader/index.js +0 -4
- package/dist/packages/components-v3/dist/ChatHeader/types/index.cjs +0 -11
- package/dist/packages/components-v3/dist/ChatHeader/types/index.js +0 -10
- package/dist/packages/components-v3/dist/Container/Container.cjs +0 -11
- package/dist/packages/components-v3/dist/Container/Container.js +0 -12
- package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.js +0 -3
- package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.js +0 -3
- package/dist/packages/components-v3/dist/Container/index.cjs +0 -1
- package/dist/packages/components-v3/dist/Container/index.js +0 -3
- package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.cjs +0 -2
- package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.js +0 -4
- package/dist/packages/components-v3/dist/FloatingButton/components/Button.cjs +0 -9
- package/dist/packages/components-v3/dist/FloatingButton/components/Button.js +0 -10
- package/dist/packages/components-v3/dist/FloatingButton/components/Container.cjs +0 -9
- package/dist/packages/components-v3/dist/FloatingButton/components/Container.js +0 -10
- package/dist/packages/components-v3/dist/FloatingButton/components/Icon.cjs +0 -3
- package/dist/packages/components-v3/dist/FloatingButton/components/Icon.js +0 -5
- package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.cjs +0 -9
- package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.js +0 -10
- package/dist/packages/components-v3/dist/FloatingButton/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/FloatingButton/components/index.js +0 -6
- package/dist/packages/components-v3/dist/FloatingButton/index.cjs +0 -2
- package/dist/packages/components-v3/dist/FloatingButton/index.js +0 -4
- package/dist/packages/components-v3/dist/FloatingButton/types/types.cjs +0 -17
- package/dist/packages/components-v3/dist/FloatingButton/types/types.js +0 -16
- package/dist/packages/components-v3/dist/Image/Image.cjs +0 -16
- package/dist/packages/components-v3/dist/Image/Image.js +0 -17
- package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.js +0 -3
- package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.cjs +0 -2
- package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.cjs +0 -2
- package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +0 -15
- package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +0 -16
- package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.cjs +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.cjs +0 -1
- package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.js +0 -3
- package/dist/packages/components-v3/dist/ImageGallery/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/index.js +0 -6
- package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.js +0 -3
- package/dist/packages/components-v3/dist/ImageGallery/index.cjs +0 -2
- package/dist/packages/components-v3/dist/ImageGallery/index.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/types/types.cjs +0 -13
- package/dist/packages/components-v3/dist/ImageGallery/types/types.js +0 -12
- package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +0 -12
- package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +0 -13
- package/dist/packages/components-v3/dist/PromptButton/components/Icon.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptButton/components/Icon.js +0 -3
- package/dist/packages/components-v3/dist/PromptButton/components/Label.cjs +0 -3
- package/dist/packages/components-v3/dist/PromptButton/components/Label.js +0 -5
- package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +0 -12
- package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +0 -13
- package/dist/packages/components-v3/dist/PromptButton/components/Loading.cjs +0 -9
- package/dist/packages/components-v3/dist/PromptButton/components/Loading.js +0 -10
- package/dist/packages/components-v3/dist/PromptButton/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/PromptButton/components/index.js +0 -6
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.js +0 -3
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +0 -8
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +0 -9
- package/dist/packages/components-v3/dist/PromptButton/index.cjs +0 -2
- package/dist/packages/components-v3/dist/PromptButton/index.js +0 -4
- package/dist/packages/components-v3/dist/PromptButton/types/index.cjs +0 -13
- package/dist/packages/components-v3/dist/PromptButton/types/index.js +0 -12
- package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.cjs +0 -12
- package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.js +0 -14
- package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.cjs +0 -9
- package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.js +0 -10
- package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.cjs +0 -11
- package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.js +0 -12
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +0 -4
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +0 -6
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +0 -4
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +0 -6
- package/dist/packages/components-v3/dist/PromptCarousel/components/index.cjs +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/components/index.js +0 -5
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.cjs +0 -5
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.js +0 -7
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.js +0 -5
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/index.cjs +0 -2
- package/dist/packages/components-v3/dist/PromptCarousel/index.js +0 -4
- package/dist/packages/components-v3/dist/PromptCarousel/types/types.cjs +0 -19
- package/dist/packages/components-v3/dist/PromptCarousel/types/types.js +0 -17
- package/dist/packages/components-v3/dist/Stack/Stack.cjs +0 -36
- package/dist/packages/components-v3/dist/Stack/Stack.js +0 -36
- package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.cjs +0 -27
- package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.js +0 -26
- package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.cjs +0 -20
- package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.js +0 -19
- package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.cjs +0 -19
- package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.js +0 -18
- package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.cjs +0 -16
- package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.js +0 -15
- package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.cjs +0 -21
- package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.js +0 -20
- package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.cjs +0 -38
- package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.js +0 -38
- package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.cjs +0 -13
- package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.js +0 -12
- package/dist/packages/components-v3/dist/Stack/index.cjs +0 -1
- package/dist/packages/components-v3/dist/Stack/index.js +0 -3
- package/dist/packages/components-v3/dist/Stack/utils/constants.cjs +0 -42
- package/dist/packages/components-v3/dist/Stack/utils/constants.js +0 -41
- package/dist/packages/components-v3/dist/Tokens/index.cjs +0 -11
- package/dist/packages/components-v3/dist/Tokens/index.js +0 -13
- package/dist/packages/components-v3/dist/Typography/Typography.cjs +0 -15
- package/dist/packages/components-v3/dist/Typography/Typography.js +0 -16
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/index.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/index.js +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.cjs +0 -2
- package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.js +0 -4
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.cjs +0 -14
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.js +0 -15
- package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.cjs +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.js +0 -5
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.cjs +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.js +0 -5
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.cjs +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.js +0 -5
- package/dist/packages/components-v3/dist/WelcomeMessage/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/WelcomeMessage/components/index.js +0 -6
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.js +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.js +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/index.cjs +0 -2
- package/dist/packages/components-v3/dist/WelcomeMessage/index.js +0 -4
- package/dist/packages/components-v3/dist/WelcomeMessage/types/types.cjs +0 -14
- package/dist/packages/components-v3/dist/WelcomeMessage/types/types.js +0 -14
- package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.cjs +0 -12
- package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.js +0 -13
- package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +0 -3
- package/dist/packages/components-v3/dist/WidgetWrapper/index.cjs +0 -2
- package/dist/packages/components-v3/dist/WidgetWrapper/index.js +0 -4
- package/dist/packages/components-v3/dist/WidgetWrapper/types/types.cjs +0 -13
- package/dist/packages/components-v3/dist/WidgetWrapper/types/types.js +0 -12
- package/dist/packages/components-v3/dist/src/models/colorsConfig.cjs +0 -26
- package/dist/packages/components-v3/dist/src/models/colorsConfig.js +0 -25
- package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.cjs +0 -16
- package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.js +0 -17
- package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.cjs +0 -25
- package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.js +0 -23
- package/dist/packages/components-v3/dist/tokens/colors/colors.cjs +0 -51
- package/dist/packages/components-v3/dist/tokens/colors/colors.js +0 -51
- package/dist/packages/components-v3/dist/tokens/radius/radius.cjs +0 -64
- package/dist/packages/components-v3/dist/tokens/radius/radius.js +0 -65
- package/dist/packages/components-v3/dist/tokens/theme/theme.cjs +0 -13
- package/dist/packages/components-v3/dist/tokens/theme/theme.js +0 -12
- package/dist/packages/components-v3/dist/tokens/typography/fontFamily.cjs +0 -25
- package/dist/packages/components-v3/dist/tokens/typography/fontFamily.js +0 -25
- package/dist/packages/components-v3/dist/tokens/typography/fontSize.cjs +0 -37
- package/dist/packages/components-v3/dist/tokens/typography/fontSize.js +0 -38
- package/dist/packages/components-v3/dist/tokens/typography/fontWeight.cjs +0 -17
- package/dist/packages/components-v3/dist/tokens/typography/fontWeight.js +0 -18
- package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.cjs +0 -15
- package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.js +0 -16
- package/dist/packages/components-v3/dist/tokens/typography/lineHeight.cjs +0 -31
- package/dist/packages/components-v3/dist/tokens/typography/lineHeight.js +0 -32
- package/dist/packages/components-v3/dist/tokens/typography/typography.cjs +0 -5
- package/dist/packages/components-v3/dist/tokens/typography/typography.js +0 -7
- package/dist/packages/components-v3/dist/tokens/utils.cjs +0 -7
- package/dist/packages/components-v3/dist/tokens/utils.js +0 -6
- package/dist/packages/components-v3/dist/utils/CustomIcon.cjs +0 -2
- package/dist/packages/components-v3/dist/utils/CustomIcon.js +0 -4
- package/dist/packages/components-v3/dist/utils/useCheckIsMobile.cjs +0 -1
- package/dist/packages/components-v3/dist/utils/useCheckIsMobile.js +0 -3
- package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +0 -57
- package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +0 -56
- package/dist/packages/icons/dist/FourPointStar.cjs +0 -8
- package/dist/packages/icons/dist/FourPointStar.js +0 -9
- package/dist/packages/icons/dist/IconCloseRounded.cjs +0 -22
- package/dist/packages/icons/dist/IconCloseRounded.js +0 -22
- package/dist/packages/icons/dist/IconCloseSharp.cjs +0 -31
- package/dist/packages/icons/dist/IconCloseSharp.js +0 -31
- package/dist/packages/icons/dist/IconCloseTransparent.cjs +0 -24
- package/dist/packages/icons/dist/IconCloseTransparent.js +0 -24
- package/dist/packages/icons/dist/Sparkles.cjs +0 -8
- package/dist/packages/icons/dist/Sparkles.js +0 -9
- package/dist/packages/icons/dist/_virtual/rolldown_runtime.cjs +0 -28
- package/dist/packages/icons/dist/_virtual/rolldown_runtime.js +0 -26
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +0 -697
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.js +0 -697
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs +0 -44
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -44
- package/dist/packages/icons/dist/node_modules/react/cjs/react.development.cjs +0 -1529
- package/dist/packages/icons/dist/node_modules/react/cjs/react.development.js +0 -1529
- package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.cjs +0 -330
- package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.js +0 -330
- package/dist/packages/icons/dist/node_modules/react/index.cjs +0 -14
- package/dist/packages/icons/dist/node_modules/react/index.js +0 -14
- package/dist/packages/icons/dist/node_modules/react/jsx-runtime.cjs +0 -14
- package/dist/packages/icons/dist/node_modules/react/jsx-runtime.js +0 -14
- package/src/contexts/featureFlagContext/featureFlagContext.tsx +0 -180
- package/src/contexts/featureFlagContext/index.ts +0 -1
|
@@ -7,11 +7,12 @@ import { AnimationSpeed, PromptCarouselRows } from '@envive-ai/react-toolkit-v3/
|
|
|
7
7
|
import { WidgetWrapperVariant } from '@envive-ai/react-toolkit-v3/WidgetWrapper';
|
|
8
8
|
import { Theme } from '@envive-ai/react-toolkit-v3/Tokens';
|
|
9
9
|
import { ChatHeaderVariant } from '@envive-ai/react-toolkit-v3/ChatHeader';
|
|
10
|
+
import { WidgetKind } from '@envive-ai/react-toolkit-v3/SocialProof';
|
|
10
11
|
import { SparkleIconColor } from '@envive-ai/react-toolkit-v3/WelcomeMessage';
|
|
11
12
|
|
|
12
13
|
import { CustomerServiceType } from 'src/types/customerService';
|
|
13
14
|
import { FloatingButtonLocation } from '@envive-ai/react-toolkit-v3/FloatingButton';
|
|
14
|
-
import { ConfigVersionEnum,
|
|
15
|
+
import { ConfigVersionEnum, WidgetTypeV3 } from '../typesV3';
|
|
15
16
|
|
|
16
17
|
const mockImages = [
|
|
17
18
|
{
|
|
@@ -138,6 +139,10 @@ export const mockV3FrontendConfig: FrontendConfigV3 = {
|
|
|
138
139
|
enabled: false,
|
|
139
140
|
suppressMerchantButton: false,
|
|
140
141
|
},
|
|
142
|
+
singlePageApplicationSettings: {
|
|
143
|
+
enabled: false,
|
|
144
|
+
refreshInterval: 1000,
|
|
145
|
+
},
|
|
141
146
|
},
|
|
142
147
|
pageVariants: [],
|
|
143
148
|
mountingConfigs: {},
|
|
@@ -188,7 +193,7 @@ export const mockV3FrontendConfig: FrontendConfigV3 = {
|
|
|
188
193
|
type: WidgetTypeV3.SocialProofV3,
|
|
189
194
|
|
|
190
195
|
imageGalleryLayout: ImageGalleryLayout.FOUR_GRID,
|
|
191
|
-
kind:
|
|
196
|
+
kind: WidgetKind.STATIC,
|
|
192
197
|
variant: WidgetWrapperVariant.INLINE_WITH_BORDER,
|
|
193
198
|
promptCarouselRows: PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
|
|
194
199
|
primaryButtonVariant: PromptButtonVariant.DARK,
|
|
@@ -201,7 +206,7 @@ export const mockV3FrontendConfig: FrontendConfigV3 = {
|
|
|
201
206
|
type: WidgetTypeV3.SocialProofV3,
|
|
202
207
|
|
|
203
208
|
imageGalleryLayout: ImageGalleryLayout.SINGLE,
|
|
204
|
-
kind:
|
|
209
|
+
kind: WidgetKind.STATIC,
|
|
205
210
|
variant: WidgetWrapperVariant.CARD_NO_BORDER,
|
|
206
211
|
promptCarouselRows: PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
|
|
207
212
|
primaryButtonVariant: PromptButtonVariant.DARK,
|
|
@@ -214,7 +219,7 @@ export const mockV3FrontendConfig: FrontendConfigV3 = {
|
|
|
214
219
|
type: WidgetTypeV3.SocialProofV3,
|
|
215
220
|
|
|
216
221
|
imageGalleryLayout: ImageGalleryLayout.FOUR_HORIZONTAL,
|
|
217
|
-
kind:
|
|
222
|
+
kind: WidgetKind.STATIC,
|
|
218
223
|
variant: WidgetWrapperVariant.CARD_WITH_BORDER,
|
|
219
224
|
promptCarouselRows: PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
|
|
220
225
|
primaryButtonVariant: PromptButtonVariant.DARK,
|
|
@@ -247,5 +252,15 @@ export const mockV3FrontendConfig: FrontendConfigV3 = {
|
|
|
247
252
|
image: mockImages[0],
|
|
248
253
|
hideTextField: false,
|
|
249
254
|
},
|
|
255
|
+
'product-card-test-widget': {
|
|
256
|
+
widgetConfigId: 'product-card-test-widget',
|
|
257
|
+
contentId: 'product-card-test-widget',
|
|
258
|
+
type: WidgetTypeV3.ProductCardV3,
|
|
259
|
+
promptButtonType: PromptButtonVariant.LIGHT,
|
|
260
|
+
italicizeHeadline: false,
|
|
261
|
+
fallbackColor: '#F9F6EA',
|
|
262
|
+
imageSrc:
|
|
263
|
+
'https://www.bandolierstyle.com/cdn/shop/files/Lily17_Black_Gold_Chrome_MOD_Dec25_6.jpg?v=1765844272',
|
|
264
|
+
},
|
|
250
265
|
},
|
|
251
266
|
};
|
|
@@ -137,6 +137,35 @@ const MOCK_HARDCOPY_RESPONSE: Partial<Record<WidgetTypeV3, HardcopyResponse>> =
|
|
|
137
137
|
textFieldPlaceholderText: 'Ask me anything...',
|
|
138
138
|
},
|
|
139
139
|
},
|
|
140
|
+
[WidgetTypeV3.ProductCardV3]: {
|
|
141
|
+
language: 'en',
|
|
142
|
+
values: {
|
|
143
|
+
headline: 'Discover Your Perfect Style',
|
|
144
|
+
animatedText: [
|
|
145
|
+
'the perfect outfit for any occasion',
|
|
146
|
+
'trending fashion that fits your lifestyle',
|
|
147
|
+
'quality pieces that last',
|
|
148
|
+
],
|
|
149
|
+
prompts: [
|
|
150
|
+
'What are your best sellers?',
|
|
151
|
+
'Show me summer dresses',
|
|
152
|
+
'Do you have free shipping?',
|
|
153
|
+
'What sizes are available?',
|
|
154
|
+
'Can I return items?',
|
|
155
|
+
],
|
|
156
|
+
placeholder: 'Ask me anything...',
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
[WidgetTypeV3.FloatingChatV3]: {
|
|
160
|
+
language: 'en',
|
|
161
|
+
values: {
|
|
162
|
+
welcomeMessageTitle: 'Welcome to Envive AI',
|
|
163
|
+
welcomeMessageText:
|
|
164
|
+
'Your personal shopper trained on the collective knowledge of thousands of real experts!',
|
|
165
|
+
chatFooterTextFieldPlaceholderText: 'Ask me anything...',
|
|
166
|
+
disclaimerText: 'This is a disclaimer...',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
140
169
|
};
|
|
141
170
|
|
|
142
171
|
const HardcopyContext = createContext<HardcopyContextType | undefined>(undefined);
|
|
@@ -15,7 +15,7 @@ import { isApiSearchAttributes } from 'src/application/models/guards/api/isApiSe
|
|
|
15
15
|
import { isApiSuggestionClickedAttributes } from 'src/application/models/guards/api/isApiSuggestionClickedEventAttributes';
|
|
16
16
|
import { isApiFormSubmittedResponseAttributes } from 'src/application/models/guards/api/isApiFormSubmittedResponseAttributes';
|
|
17
17
|
|
|
18
|
-
import { PageVariantInfo, VisitPageVariantInfo } from './types';
|
|
18
|
+
import { HomeVariantInfo, OtherVariantInfo, PageVariantInfo, VisitPageVariantInfo } from './types';
|
|
19
19
|
|
|
20
20
|
export const mapUrlResolverResponseToVariantInfo = (
|
|
21
21
|
url: string,
|
|
@@ -51,6 +51,21 @@ export const mapUrlResolverResponseToVariantInfo = (
|
|
|
51
51
|
url,
|
|
52
52
|
} as VisitPageVariantInfo;
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
if (response.variant_type === VariantTypeEnum.Home) {
|
|
56
|
+
return {
|
|
57
|
+
variantType: VariantTypeEnum.Home,
|
|
58
|
+
url,
|
|
59
|
+
} as HomeVariantInfo;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (response.variant_type === VariantTypeEnum.Other) {
|
|
63
|
+
return {
|
|
64
|
+
variantType: VariantTypeEnum.Other,
|
|
65
|
+
url,
|
|
66
|
+
} as OtherVariantInfo;
|
|
67
|
+
}
|
|
68
|
+
|
|
54
69
|
throw new Error('Invalid variant type');
|
|
55
70
|
};
|
|
56
71
|
|
|
@@ -22,7 +22,12 @@ import { mapApiUserEventToUserEvent, mapUrlResolverResponseToVariantInfo } from
|
|
|
22
22
|
import { PageDetails } from './types';
|
|
23
23
|
|
|
24
24
|
const PageContext = createContext<
|
|
25
|
-
(PageDetails & {
|
|
25
|
+
| (PageDetails & {
|
|
26
|
+
isLoading: boolean;
|
|
27
|
+
isSupported: boolean;
|
|
28
|
+
setPageUrl: (url: string) => void;
|
|
29
|
+
})
|
|
30
|
+
| undefined
|
|
26
31
|
>(undefined);
|
|
27
32
|
|
|
28
33
|
export const PageProvider: React.FC<{
|
|
@@ -36,7 +41,6 @@ export const PageProvider: React.FC<{
|
|
|
36
41
|
const [userEvent, setUserEvent] = useAtom(pageUserEventAtom);
|
|
37
42
|
const [isSupported, setIsSupported] = useState(false);
|
|
38
43
|
useEffect(() => {
|
|
39
|
-
// TODO: Add support for SPA's and other changes to the URL to ensure that the pageUrl is set correctly
|
|
40
44
|
setPageUrl(window.location.href);
|
|
41
45
|
}, []);
|
|
42
46
|
|
|
@@ -109,6 +113,10 @@ export const PageProvider: React.FC<{
|
|
|
109
113
|
previewMode,
|
|
110
114
|
]);
|
|
111
115
|
|
|
116
|
+
const setPageUrlStable = useCallback((url: string) => {
|
|
117
|
+
setPageUrl(url);
|
|
118
|
+
}, []);
|
|
119
|
+
|
|
112
120
|
const value = useMemo(
|
|
113
121
|
() => ({
|
|
114
122
|
pageUrl,
|
|
@@ -116,8 +124,9 @@ export const PageProvider: React.FC<{
|
|
|
116
124
|
userEvent,
|
|
117
125
|
isLoading,
|
|
118
126
|
isSupported,
|
|
127
|
+
setPageUrl: setPageUrlStable,
|
|
119
128
|
}),
|
|
120
|
-
[pageUrl, userEvent, variantInfo, isLoading, isSupported],
|
|
129
|
+
[pageUrl, userEvent, variantInfo, isLoading, isSupported, setPageUrlStable],
|
|
121
130
|
);
|
|
122
131
|
|
|
123
132
|
return <PageContext.Provider value={value}>{children}</PageContext.Provider>;
|
|
@@ -21,7 +21,22 @@ export type VisitPageVariantInfo = {
|
|
|
21
21
|
url: string;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
export type
|
|
24
|
+
export type HomeVariantInfo = {
|
|
25
|
+
variantType: VariantTypeEnum.Home;
|
|
26
|
+
url: string;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type OtherVariantInfo = {
|
|
30
|
+
variantType: VariantTypeEnum.Other;
|
|
31
|
+
url: string;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export type PageVariantInfo =
|
|
35
|
+
| PDPPageVariantInfo
|
|
36
|
+
| PLPPageVariantInfo
|
|
37
|
+
| VisitPageVariantInfo
|
|
38
|
+
| HomeVariantInfo
|
|
39
|
+
| OtherVariantInfo;
|
|
25
40
|
|
|
26
41
|
export interface PageDetails {
|
|
27
42
|
pageUrl: string | undefined;
|
|
@@ -1,25 +1,38 @@
|
|
|
1
1
|
// This component will interact with the backend API to get the responses from the sales agent.
|
|
2
2
|
|
|
3
3
|
import { PageVisitCategory, UserEventCategory } from '@spiffy-ai/commerce-api-client';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
ChatElementDisplayLocationV3,
|
|
6
|
+
FormSubmittedAttributes,
|
|
7
|
+
MessageRole,
|
|
8
|
+
MessageType,
|
|
9
|
+
Suggestion,
|
|
10
|
+
UserEvent,
|
|
11
|
+
} from 'src/application/models';
|
|
5
12
|
import { useSetAtom } from 'jotai';
|
|
6
13
|
import { useCallback } from 'react';
|
|
7
14
|
import { v4 as uuid } from 'uuid';
|
|
15
|
+
import { formSubmitAtom, replyEventCategoryAtom } from 'src/atoms/chat';
|
|
8
16
|
import { queueUserEventAtom } from 'src/atoms/chat/messageQueue';
|
|
9
17
|
import { SpiffyMetricsEventName, useAmplitude } from '../amplitudeContext';
|
|
10
18
|
|
|
11
19
|
export interface SalesAgentChatAPI {
|
|
12
20
|
logPageVisit: ({ pageVisitCategory }: { pageVisitCategory: PageVisitCategory }) => void;
|
|
13
21
|
logUserEvent: (event: UserEvent) => void;
|
|
14
|
-
onSuggestionClicked: (
|
|
22
|
+
onSuggestionClicked: (
|
|
23
|
+
suggestion: Suggestion,
|
|
24
|
+
displayLocation: ChatElementDisplayLocationV3,
|
|
25
|
+
) => void;
|
|
15
26
|
onTypedMessageSubmitted: ({ query, userTyped }: { query: string; userTyped: boolean }) => void;
|
|
16
|
-
onFormResponseSubmitted: (formResponse:
|
|
27
|
+
onFormResponseSubmitted: (formResponse: FormSubmittedAttributes) => void;
|
|
17
28
|
}
|
|
18
29
|
|
|
19
30
|
export const useSalesAgentChatAPI = () => {
|
|
20
31
|
// TODO: Each of these functions will trigger both the necessary amplitude events and initiate the
|
|
21
32
|
// necessary actions to trigger the backend API
|
|
22
33
|
const queueUserEvent = useSetAtom(queueUserEventAtom);
|
|
34
|
+
const setReplyEventCategory = useSetAtom(replyEventCategoryAtom);
|
|
35
|
+
const setFormSubmit = useSetAtom(formSubmitAtom);
|
|
23
36
|
const { trackEvent } = useAmplitude();
|
|
24
37
|
|
|
25
38
|
const logPageVisit = useCallback(
|
|
@@ -45,12 +58,20 @@ export const useSalesAgentChatAPI = () => {
|
|
|
45
58
|
[queueUserEvent],
|
|
46
59
|
);
|
|
47
60
|
const onSuggestionClicked = useCallback(
|
|
48
|
-
(suggestion: Suggestion) => {
|
|
61
|
+
(suggestion: Suggestion, displayLocation: ChatElementDisplayLocationV3) => {
|
|
49
62
|
trackEvent({
|
|
50
63
|
eventName: SpiffyMetricsEventName.ChatSuggestionClicked,
|
|
51
64
|
eventProps: {
|
|
52
|
-
|
|
53
|
-
|
|
65
|
+
message_id: suggestion.id,
|
|
66
|
+
message_role: MessageRole.User,
|
|
67
|
+
message_type: MessageType.SuggestionClicked,
|
|
68
|
+
message_metadata: {
|
|
69
|
+
content: suggestion.content,
|
|
70
|
+
created_at: suggestion.createdAt,
|
|
71
|
+
category: suggestion.category,
|
|
72
|
+
is_answer: suggestion.isAnswer,
|
|
73
|
+
display_location: displayLocation,
|
|
74
|
+
},
|
|
54
75
|
},
|
|
55
76
|
});
|
|
56
77
|
const event: UserEvent = {
|
|
@@ -68,15 +89,24 @@ export const useSalesAgentChatAPI = () => {
|
|
|
68
89
|
);
|
|
69
90
|
const onTypedMessageSubmitted = useCallback(
|
|
70
91
|
({ query, userTyped }: { query: string; userTyped: boolean }) => {
|
|
92
|
+
const eventId = uuid();
|
|
71
93
|
trackEvent({
|
|
72
94
|
eventName: SpiffyMetricsEventName.ChatUserMessageInput,
|
|
73
95
|
eventProps: {
|
|
74
96
|
query,
|
|
75
|
-
userTyped,
|
|
97
|
+
user_typed: userTyped,
|
|
98
|
+
message_id: eventId,
|
|
99
|
+
message_role: MessageRole.User,
|
|
100
|
+
message_type: MessageType.QueryTyped,
|
|
101
|
+
message_metadata: {
|
|
102
|
+
content: query,
|
|
103
|
+
created_at: new Date().toISOString(),
|
|
104
|
+
user_typed: userTyped,
|
|
105
|
+
},
|
|
76
106
|
},
|
|
77
107
|
});
|
|
78
108
|
const event: UserEvent = {
|
|
79
|
-
eventId
|
|
109
|
+
eventId,
|
|
80
110
|
category: UserEventCategory.QueryTyped,
|
|
81
111
|
createdAt: new Date().toISOString(),
|
|
82
112
|
attributes: {
|
|
@@ -88,9 +118,20 @@ export const useSalesAgentChatAPI = () => {
|
|
|
88
118
|
},
|
|
89
119
|
[queueUserEvent, trackEvent],
|
|
90
120
|
);
|
|
91
|
-
const onFormResponseSubmitted = useCallback(
|
|
92
|
-
|
|
93
|
-
|
|
121
|
+
const onFormResponseSubmitted = useCallback(
|
|
122
|
+
(form: FormSubmittedAttributes) => {
|
|
123
|
+
setReplyEventCategory(UserEventCategory.FormSubmitted);
|
|
124
|
+
setFormSubmit(form);
|
|
125
|
+
const event: UserEvent = {
|
|
126
|
+
eventId: uuid(),
|
|
127
|
+
category: UserEventCategory.FormSubmitted,
|
|
128
|
+
createdAt: new Date().toISOString(),
|
|
129
|
+
attributes: form,
|
|
130
|
+
};
|
|
131
|
+
queueUserEvent(event);
|
|
132
|
+
},
|
|
133
|
+
[queueUserEvent, setReplyEventCategory, setFormSubmit],
|
|
134
|
+
);
|
|
94
135
|
|
|
95
136
|
return {
|
|
96
137
|
logPageVisit,
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Message, MessageRole, MessageType } from 'src/application/models/message';
|
|
2
|
+
import { UserEvent } from 'src/application/models';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Searches the chat history for the form message by form response ID and builds the display string for the form.
|
|
6
|
+
*/
|
|
7
|
+
export const buildFormSubmittedDisplayContent = (
|
|
8
|
+
messages: Message[][],
|
|
9
|
+
formResponseId: string,
|
|
10
|
+
filledSchema: Record<string, unknown>,
|
|
11
|
+
): string => {
|
|
12
|
+
let formFields: { key: string; title: string }[] = [];
|
|
13
|
+
// Find the form message in the chat history
|
|
14
|
+
for (const turn of messages) {
|
|
15
|
+
for (const msg of turn) {
|
|
16
|
+
if (
|
|
17
|
+
msg.type === MessageType.Form &&
|
|
18
|
+
msg.id === formResponseId &&
|
|
19
|
+
msg.metadata &&
|
|
20
|
+
'fields' in msg.metadata &&
|
|
21
|
+
Array.isArray(msg.metadata.fields)
|
|
22
|
+
) {
|
|
23
|
+
formFields = msg.metadata.fields.map((field: { key: string; title: string }) => ({
|
|
24
|
+
key: field.key,
|
|
25
|
+
title: field.title,
|
|
26
|
+
}));
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (formFields.length > 0) break;
|
|
31
|
+
}
|
|
32
|
+
// Build the display string for the form
|
|
33
|
+
const formStringContent =
|
|
34
|
+
formFields.length > 0
|
|
35
|
+
? formFields.map(({ key, title }) => `${title}: ${filledSchema[key] ?? ''}`).join('\n')
|
|
36
|
+
: Object.entries(filledSchema)
|
|
37
|
+
.map(([key, value]) => `${key}: ${value}`)
|
|
38
|
+
.join('\n');
|
|
39
|
+
return formStringContent;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Creates a user message representing a submitted form for display in the chat.
|
|
44
|
+
*/
|
|
45
|
+
export const createFormSubmittedUserMessage = (
|
|
46
|
+
userEvent: UserEvent,
|
|
47
|
+
formSubmittedContent: string,
|
|
48
|
+
): Message => {
|
|
49
|
+
const newMessage: Message = {
|
|
50
|
+
id: userEvent.eventId,
|
|
51
|
+
role: MessageRole.User,
|
|
52
|
+
type: MessageType.QueryTyped,
|
|
53
|
+
createdAt: userEvent.createdAt,
|
|
54
|
+
metadata: { content: formSubmittedContent },
|
|
55
|
+
};
|
|
56
|
+
return newMessage;
|
|
57
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useAtom, useAtomValue, useSetAtom } from 'jotai';
|
|
2
|
-
import { ReactNode, createContext, useCallback, useEffect, useMemo } from 'react';
|
|
2
|
+
import { ReactNode, createContext, useCallback, useEffect, useMemo, useRef } from 'react';
|
|
3
3
|
import { UserEventCategory } from '@spiffy-ai/commerce-api-client';
|
|
4
4
|
import Logger from 'src/application/logging/logger';
|
|
5
5
|
import { Message, MessageRole, MessageType } from 'src/application/models/message';
|
|
@@ -17,6 +17,10 @@ import {
|
|
|
17
17
|
userQueueEventCountAtom,
|
|
18
18
|
} from 'src/atoms/chat/messageQueue';
|
|
19
19
|
import { useSystemSettingsContext } from 'src/hooks/SystemSettingsContext';
|
|
20
|
+
import {
|
|
21
|
+
buildFormSubmittedDisplayContent,
|
|
22
|
+
createFormSubmittedUserMessage,
|
|
23
|
+
} from './formSubmittedUtils';
|
|
20
24
|
import { SalesAgentChatAPI, useSalesAgentChatAPI } from './chatAPI';
|
|
21
25
|
import { useSalesAgentService } from './salesAgentService';
|
|
22
26
|
|
|
@@ -35,19 +39,50 @@ export interface SalesAgent extends SalesAgentChatAPI {
|
|
|
35
39
|
isInitialized: boolean;
|
|
36
40
|
}
|
|
37
41
|
|
|
42
|
+
export interface MockSalesAgentData {
|
|
43
|
+
messages?: Message[][];
|
|
44
|
+
suggestions?: Suggestion[];
|
|
45
|
+
}
|
|
46
|
+
|
|
38
47
|
const SalesAgentContext = createContext<SalesAgent | undefined>(undefined);
|
|
39
48
|
|
|
40
|
-
export
|
|
49
|
+
export interface SalesAgentProviderProps {
|
|
50
|
+
children: ReactNode;
|
|
51
|
+
previewMode?: boolean;
|
|
52
|
+
mockData?: MockSalesAgentData;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export const SalesAgentProvider: React.FC<SalesAgentProviderProps> = ({
|
|
56
|
+
children,
|
|
57
|
+
previewMode = false,
|
|
58
|
+
mockData,
|
|
59
|
+
}) => {
|
|
41
60
|
const userEvents = useAtomValue(userEventQueueAtom);
|
|
42
61
|
const userQueueEventCount = useAtomValue(userQueueEventCountAtom);
|
|
43
62
|
const markUserEventsProcessed = useSetAtom(processUserEventAtom);
|
|
44
63
|
const [isInitialized, setIsInitialized] = useAtom(initializedAtom);
|
|
45
64
|
const settingsContext = useSystemSettingsContext();
|
|
46
65
|
const setMessages = useSetAtom(messagesAtom);
|
|
66
|
+
const setSuggestions = useSetAtom(suggestionsAtom);
|
|
47
67
|
|
|
48
68
|
const { getStreamingResponses, createResponsePayload, getSuggestions, hydrateMessages } =
|
|
49
69
|
useSalesAgentService();
|
|
50
70
|
|
|
71
|
+
const isSendingRef = useRef(false);
|
|
72
|
+
|
|
73
|
+
// Initialize with mock data in preview mode
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (previewMode && mockData) {
|
|
76
|
+
if (mockData.messages) {
|
|
77
|
+
setMessages(mockData.messages);
|
|
78
|
+
}
|
|
79
|
+
if (mockData.suggestions) {
|
|
80
|
+
setSuggestions(mockData.suggestions);
|
|
81
|
+
}
|
|
82
|
+
setIsInitialized(true);
|
|
83
|
+
}
|
|
84
|
+
}, [previewMode, mockData, setMessages, setSuggestions, setIsInitialized]);
|
|
85
|
+
|
|
51
86
|
// TODO: Ensure that amplitude events are being emitted
|
|
52
87
|
|
|
53
88
|
// TODO: Add support for the streaming responses to function
|
|
@@ -72,7 +107,13 @@ export const SalesAgentProvider: React.FC<{ children: ReactNode }> = ({ children
|
|
|
72
107
|
// It will be triggered when there are pending messages to be sent to the backend
|
|
73
108
|
// It will be responsible for sending the messages to the backend and receiving the responses
|
|
74
109
|
useEffect(() => {
|
|
75
|
-
|
|
110
|
+
// Skip backend communication in preview mode
|
|
111
|
+
if (previewMode) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (userQueueEventCount > 0 && !isSendingRef.current) {
|
|
116
|
+
isSendingRef.current = true;
|
|
76
117
|
const payloadEvents = userEvents.slice(0, userQueueEventCount);
|
|
77
118
|
|
|
78
119
|
payloadEvents.forEach(userEvent => {
|
|
@@ -100,6 +141,23 @@ export const SalesAgentProvider: React.FC<{ children: ReactNode }> = ({ children
|
|
|
100
141
|
};
|
|
101
142
|
setMessages(current => [...current, [newMessage]]);
|
|
102
143
|
}
|
|
144
|
+
if (userEvent && userEvent.category === UserEventCategory.FormSubmitted) {
|
|
145
|
+
const { formResponseId, filledSchema } = userEvent.attributes;
|
|
146
|
+
setMessages(prevMessagesState => {
|
|
147
|
+
const formSubmittedContent = buildFormSubmittedDisplayContent(
|
|
148
|
+
prevMessagesState,
|
|
149
|
+
formResponseId,
|
|
150
|
+
filledSchema,
|
|
151
|
+
);
|
|
152
|
+
const newUserMessage = createFormSubmittedUserMessage(userEvent, formSubmittedContent);
|
|
153
|
+
const turnsWithoutForm = prevMessagesState
|
|
154
|
+
.map(turn =>
|
|
155
|
+
turn.filter(msg => !(msg.type === MessageType.Form && msg.id === formResponseId)),
|
|
156
|
+
)
|
|
157
|
+
.filter(turn => turn.length > 0);
|
|
158
|
+
return [...turnsWithoutForm, [newUserMessage]];
|
|
159
|
+
});
|
|
160
|
+
}
|
|
103
161
|
});
|
|
104
162
|
|
|
105
163
|
sendMessagesToBackend(
|
|
@@ -107,7 +165,9 @@ export const SalesAgentProvider: React.FC<{ children: ReactNode }> = ({ children
|
|
|
107
165
|
userEvents: payloadEvents,
|
|
108
166
|
generationParams: settingsContext.generationParams,
|
|
109
167
|
}),
|
|
110
|
-
)
|
|
168
|
+
).finally(() => {
|
|
169
|
+
isSendingRef.current = false;
|
|
170
|
+
});
|
|
111
171
|
} else if (isInitialized) {
|
|
112
172
|
getSuggestions(
|
|
113
173
|
createResponsePayload({
|
|
@@ -125,14 +185,20 @@ export const SalesAgentProvider: React.FC<{ children: ReactNode }> = ({ children
|
|
|
125
185
|
settingsContext.generationParams,
|
|
126
186
|
userEvents,
|
|
127
187
|
userQueueEventCount,
|
|
188
|
+
previewMode,
|
|
128
189
|
]);
|
|
129
190
|
|
|
130
191
|
useEffect(() => {
|
|
192
|
+
// Skip hydration in preview mode
|
|
193
|
+
if (previewMode) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
|
|
131
197
|
if (isInitialized) {
|
|
132
198
|
// Rehydrate any messages from the backend
|
|
133
199
|
hydrateMessages();
|
|
134
200
|
}
|
|
135
|
-
}, [isInitialized, hydrateMessages]);
|
|
201
|
+
}, [isInitialized, hydrateMessages, previewMode]);
|
|
136
202
|
|
|
137
203
|
return <SalesAgentContext.Provider value={undefined}>{children}</SalesAgentContext.Provider>;
|
|
138
204
|
};
|
|
@@ -44,12 +44,14 @@ const inputPropsToTrackingProps = (
|
|
|
44
44
|
const [userEvent] = payload.userEvents || [];
|
|
45
45
|
if (userEvent.category === UserEventCategory.SuggestionClicked) {
|
|
46
46
|
return {
|
|
47
|
+
message_id: userEvent.eventId,
|
|
47
48
|
user_event_type: 'suggestion_clicked',
|
|
48
49
|
user_query: userEvent.attributes.content,
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
if (userEvent.category === UserEventCategory.QueryTyped) {
|
|
52
53
|
return {
|
|
54
|
+
message_id: userEvent.eventId,
|
|
53
55
|
user_event_type: 'query_typed',
|
|
54
56
|
user_query: userEvent.attributes.query,
|
|
55
57
|
};
|
|
@@ -216,6 +218,7 @@ export const useSalesAgentService: () => SalesAgentService = () => {
|
|
|
216
218
|
const getStreamingResponses = useCallback(
|
|
217
219
|
async (payload: NextMessageRequest): Promise<void> => {
|
|
218
220
|
const startTime = Date.now();
|
|
221
|
+
let successfulResponse: boolean | undefined;
|
|
219
222
|
setPendingResponse(true);
|
|
220
223
|
const stream = CommerceApiClient.getNextResponseStreaming(payload);
|
|
221
224
|
|
|
@@ -228,16 +231,8 @@ export const useSalesAgentService: () => SalesAgentService = () => {
|
|
|
228
231
|
setMessages,
|
|
229
232
|
setResponseStreaming,
|
|
230
233
|
);
|
|
234
|
+
successfulResponse = true;
|
|
231
235
|
|
|
232
|
-
// Log successful next_responses call
|
|
233
|
-
const responseTime = Date.now() - startTime;
|
|
234
|
-
trackEvent({
|
|
235
|
-
eventName: SpiffyMetricsEventName.ChatAssistantResponse,
|
|
236
|
-
eventProps: {
|
|
237
|
-
responseTimeMs: responseTime.toString(),
|
|
238
|
-
...inputPropsToTrackingProps(payload),
|
|
239
|
-
},
|
|
240
|
-
});
|
|
241
236
|
// TODO: Add support for the Chrome Extension communication
|
|
242
237
|
// await logBundleEvent({
|
|
243
238
|
// level: 'info',
|
|
@@ -251,6 +246,7 @@ export const useSalesAgentService: () => SalesAgentService = () => {
|
|
|
251
246
|
// });
|
|
252
247
|
} catch (e) {
|
|
253
248
|
console.error('error getting streaming responses', e);
|
|
249
|
+
successfulResponse = false;
|
|
254
250
|
// Log failed next_responses call
|
|
255
251
|
// const responseTime = Date.now() - startTime;
|
|
256
252
|
// await logBundleEvent({
|
|
@@ -268,6 +264,16 @@ export const useSalesAgentService: () => SalesAgentService = () => {
|
|
|
268
264
|
handleStreamingError(e, setRequestFailure, setMessages);
|
|
269
265
|
throw e;
|
|
270
266
|
} finally {
|
|
267
|
+
// Log next_responses call
|
|
268
|
+
const responseTime = Date.now() - startTime;
|
|
269
|
+
trackEvent({
|
|
270
|
+
eventName: SpiffyMetricsEventName.ChatAssistantResponse,
|
|
271
|
+
eventProps: {
|
|
272
|
+
responseTimeMs: responseTime.toString(),
|
|
273
|
+
successful_response: successfulResponse,
|
|
274
|
+
...inputPropsToTrackingProps(payload),
|
|
275
|
+
},
|
|
276
|
+
});
|
|
271
277
|
setPendingResponse(false);
|
|
272
278
|
setResponseStreaming(false);
|
|
273
279
|
// logPerfMetric(PerfMetricsEvents.FirstResponseCompleted);
|
|
@@ -21,6 +21,7 @@ import { SearchResult } from 'src/application/models/api/search';
|
|
|
21
21
|
|
|
22
22
|
import { useAppDetails } from 'src/hooks/AppDetails/useAppDetails';
|
|
23
23
|
import * as commerceApiClient from '@spiffy-ai/commerce-api-client';
|
|
24
|
+
import { UserIdentityService } from 'src/services/userIdentityService';
|
|
24
25
|
import { SearchProvider, useSearchService } from '../searchContext';
|
|
25
26
|
|
|
26
27
|
// Mock the commerce-api-client
|
|
@@ -61,6 +62,7 @@ vi.mock('@spiffy-ai/commerce-api-client', () => {
|
|
|
61
62
|
|
|
62
63
|
// FeatureFlagService
|
|
63
64
|
const testFeatureFlagService = new FeatureFlagService([]);
|
|
65
|
+
const testUserIdService = new UserIdentityService({ apiKey: '' });
|
|
64
66
|
|
|
65
67
|
// Mock useAppDetails
|
|
66
68
|
vi.mock('src/hooks/AppDetails/useAppDetails', () => ({
|
|
@@ -197,7 +199,7 @@ const TestWrapper: React.FC<{
|
|
|
197
199
|
>
|
|
198
200
|
<LocalStorageProvider>
|
|
199
201
|
<GraphQLProvider>
|
|
200
|
-
<UserIdentityProvider>
|
|
202
|
+
<UserIdentityProvider userIdService={testUserIdService}>
|
|
201
203
|
<FeatureFlagServiceProvider featureFlagService={testFeatureFlagService}>
|
|
202
204
|
<SearchProvider>{children}</SearchProvider>
|
|
203
205
|
</FeatureFlagServiceProvider>
|