@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
package/src/contexts/typesV3.ts
CHANGED
|
@@ -3,12 +3,12 @@ import { ImageGalleryImage, ImageGalleryLayout } from '@envive-ai/react-toolkit-
|
|
|
3
3
|
import { PromptButtonVariant } from '@envive-ai/react-toolkit-v3/PromptButton';
|
|
4
4
|
import { WidgetWrapperVariant } from '@envive-ai/react-toolkit-v3/WidgetWrapper';
|
|
5
5
|
import { Theme } from '@envive-ai/react-toolkit-v3/Tokens';
|
|
6
|
-
import { DynamicLayout } from '@envive-ai/react-toolkit-v3/SocialProof';
|
|
6
|
+
import { DynamicLayout, WidgetKind } from '@envive-ai/react-toolkit-v3/SocialProof';
|
|
7
7
|
import { SparkleIconColor } from '@envive-ai/react-toolkit-v3/WelcomeMessage';
|
|
8
8
|
import { FloatingButtonLocation } from '@envive-ai/react-toolkit-v3/FloatingButton';
|
|
9
9
|
import { ColorNames } from '../application/models/colorsConfigV3';
|
|
10
10
|
import { CustomerServiceType } from '../types/customerService';
|
|
11
|
-
import type {
|
|
11
|
+
import type { SearchConfig } from './types';
|
|
12
12
|
|
|
13
13
|
export enum LetterSpacingCSSVar {
|
|
14
14
|
Tight0 = 'envive-typography-letter-spacing-tight-0',
|
|
@@ -204,6 +204,11 @@ type CustomerServiceIntegration = {
|
|
|
204
204
|
suppressMerchantButton?: boolean;
|
|
205
205
|
};
|
|
206
206
|
|
|
207
|
+
type SPASettings = {
|
|
208
|
+
enabled: boolean;
|
|
209
|
+
refreshInterval?: number;
|
|
210
|
+
};
|
|
211
|
+
|
|
207
212
|
type OrgUIConfigV3 = {
|
|
208
213
|
id?: string;
|
|
209
214
|
|
|
@@ -221,7 +226,7 @@ type OrgUIConfigV3 = {
|
|
|
221
226
|
|
|
222
227
|
customerServiceIntegration?: CustomerServiceIntegration;
|
|
223
228
|
|
|
224
|
-
|
|
229
|
+
singlePageApplicationSettings?: SPASettings;
|
|
225
230
|
|
|
226
231
|
searchConfig?: SearchConfig;
|
|
227
232
|
};
|
|
@@ -240,6 +245,7 @@ export enum WidgetTypeV3 {
|
|
|
240
245
|
SingleImagePromptV3 = 'SingleImagePromptV3',
|
|
241
246
|
FloatingChatV3 = 'FloatingChatV3',
|
|
242
247
|
FloatingButtonV3 = 'FloatingButtonV3',
|
|
248
|
+
ProductCardV3 = 'ProductCardV3',
|
|
243
249
|
}
|
|
244
250
|
|
|
245
251
|
interface BaseWidgetConfig<T extends WidgetTypeV3> {
|
|
@@ -261,13 +267,8 @@ interface TitledPromptCarouselWidgetV3Config extends BaseWidgetConfig<WidgetType
|
|
|
261
267
|
promptCarouselRows?: PromptCarouselRows;
|
|
262
268
|
animationSpeed?: AnimationSpeed;
|
|
263
269
|
}
|
|
264
|
-
|
|
265
|
-
enum SocialProofWidgetKind {
|
|
266
|
-
STATIC = 'static',
|
|
267
|
-
DYNAMIC = 'dynamic',
|
|
268
|
-
}
|
|
269
270
|
interface SocialProofWidgetV3Config extends BaseWidgetConfig<WidgetTypeV3.SocialProofV3> {
|
|
270
|
-
kind:
|
|
271
|
+
kind: WidgetKind;
|
|
271
272
|
variant: WidgetWrapperVariant;
|
|
272
273
|
hexCardColor?: string;
|
|
273
274
|
promptCarouselRows: PromptCarouselRows;
|
|
@@ -311,10 +312,18 @@ interface PromptButtonCarouselWithImageWidgetV3Config extends BaseWidgetConfig<W
|
|
|
311
312
|
promptButtonType?: PromptButtonVariant;
|
|
312
313
|
image?: ImageGalleryImage;
|
|
313
314
|
hideTextField?: boolean;
|
|
315
|
+
isDynamic?: boolean;
|
|
314
316
|
}
|
|
315
317
|
|
|
316
318
|
interface FloatingChatWidgetV3Config extends BaseWidgetConfig<WidgetTypeV3.FloatingChatV3> {}
|
|
317
319
|
|
|
320
|
+
interface ProductCardWidgetV3Config extends BaseWidgetConfig<WidgetTypeV3.ProductCardV3> {
|
|
321
|
+
promptButtonType?: PromptButtonVariant;
|
|
322
|
+
italicizeHeadline?: boolean;
|
|
323
|
+
fallbackColor?: string;
|
|
324
|
+
imageSrc?: string;
|
|
325
|
+
}
|
|
326
|
+
|
|
318
327
|
type WidgetConfigV3 =
|
|
319
328
|
| PromptCarouselWidgetV3Config
|
|
320
329
|
| SocialProofWidgetV3Config
|
|
@@ -324,7 +333,8 @@ type WidgetConfigV3 =
|
|
|
324
333
|
| TypingAnimationWidgetV3Config
|
|
325
334
|
| ChatPreviewWidgetV3Config
|
|
326
335
|
| PromptButtonCarouselWithImageWidgetV3Config
|
|
327
|
-
| FloatingChatWidgetV3Config
|
|
336
|
+
| FloatingChatWidgetV3Config
|
|
337
|
+
| ProductCardWidgetV3Config;
|
|
328
338
|
|
|
329
339
|
export type {
|
|
330
340
|
OrgUIConfigV3,
|
|
@@ -339,9 +349,9 @@ export type {
|
|
|
339
349
|
TypingAnimationWidgetV3Config,
|
|
340
350
|
PromptButtonCarouselWithImageWidgetV3Config,
|
|
341
351
|
FloatingChatWidgetV3Config,
|
|
352
|
+
ProductCardWidgetV3Config,
|
|
342
353
|
FloatingChatConfig,
|
|
343
354
|
FloatingButtonConfig,
|
|
344
355
|
CustomerServiceIntegration,
|
|
356
|
+
SPASettings,
|
|
345
357
|
};
|
|
346
|
-
|
|
347
|
-
export { SocialProofWidgetKind };
|
|
@@ -5,6 +5,7 @@ import { userIdAtom } from 'src/atoms/app';
|
|
|
5
5
|
import { LocalStorageProvider } from 'src/contexts/localStorageContext';
|
|
6
6
|
import Logger from 'src/application/logging/logger';
|
|
7
7
|
import CommerceApiClient from 'src/application/commerce-api';
|
|
8
|
+
import { UserIdentityService } from 'src/services/userIdentityService';
|
|
8
9
|
import { UserIdentityProvider, useUserIdentity } from '../userIdentityContext';
|
|
9
10
|
|
|
10
11
|
// Mock the Logger to avoid console output in tests
|
|
@@ -24,20 +25,32 @@ vi.mock('uuid', () => ({
|
|
|
24
25
|
v4: vi.fn(() => 'test-uuid-12345'),
|
|
25
26
|
}));
|
|
26
27
|
|
|
28
|
+
// Mock userIdService
|
|
29
|
+
const mockGetUserId = vi.fn().mockResolvedValue('spiffy-user-id-test-user-id');
|
|
30
|
+
const mockInitializeUser = vi.fn().mockResolvedValue(undefined);
|
|
31
|
+
|
|
32
|
+
const testUserIdService = {
|
|
33
|
+
getUserIdOrDefault: mockGetUserId,
|
|
34
|
+
initializeUser: mockInitializeUser,
|
|
35
|
+
getUserIdOverrideFromLocalStorage: vi.fn().mockReturnValue(undefined),
|
|
36
|
+
} as unknown as UserIdentityService;
|
|
37
|
+
|
|
27
38
|
// Component that uses the useUserIdentity hook
|
|
28
39
|
const MockComponent: React.FC = () => {
|
|
29
40
|
const context = useUserIdentity();
|
|
41
|
+
const [userId, setUserId] = React.useState<string>('');
|
|
42
|
+
|
|
43
|
+
React.useEffect(() => {
|
|
44
|
+
context.getUserIdOrDefault().then(setUserId);
|
|
45
|
+
}, [context]);
|
|
30
46
|
|
|
31
47
|
return (
|
|
32
48
|
<div data-testid="mock-component">
|
|
33
|
-
<div data-testid="user-id">{
|
|
49
|
+
<div data-testid="user-id">{userId}</div>
|
|
34
50
|
<div data-testid="is-ready">{context.isReady.toString()}</div>
|
|
35
51
|
<div data-testid="user-id-override">
|
|
36
52
|
{context.getUserIdOverrideFromLocalStorage() || 'none'}
|
|
37
53
|
</div>
|
|
38
|
-
<div data-testid="user-id-default">
|
|
39
|
-
{context.getUserIdDefaultFromLocalStorage() || 'none'}
|
|
40
|
-
</div>
|
|
41
54
|
</div>
|
|
42
55
|
);
|
|
43
56
|
};
|
|
@@ -122,7 +135,7 @@ describe('UserIdentityProvider', () => {
|
|
|
122
135
|
return render(
|
|
123
136
|
<Provider>
|
|
124
137
|
<LocalStorageProvider>
|
|
125
|
-
<UserIdentityProvider>{children}</UserIdentityProvider>
|
|
138
|
+
<UserIdentityProvider userIdService={testUserIdService}>{children}</UserIdentityProvider>
|
|
126
139
|
</LocalStorageProvider>
|
|
127
140
|
</Provider>,
|
|
128
141
|
);
|
|
@@ -220,50 +233,6 @@ describe('UserIdentityProvider', () => {
|
|
|
220
233
|
|
|
221
234
|
consoleSpy.mockRestore();
|
|
222
235
|
});
|
|
223
|
-
|
|
224
|
-
it('should set userIdAtom correctly when multiple components use useUserIdentity', async () => {
|
|
225
|
-
// Component that sets override - the atom will be set by useUserIdentity
|
|
226
|
-
const ComponentWithActions: React.FC = () => {
|
|
227
|
-
const context = useUserIdentity();
|
|
228
|
-
|
|
229
|
-
React.useEffect(() => {
|
|
230
|
-
// Set override on mount
|
|
231
|
-
context.setUserIdOverrideInLocalStorage('multi-component-override');
|
|
232
|
-
}, [context]);
|
|
233
|
-
|
|
234
|
-
// Get userId from context instead of atom directly
|
|
235
|
-
const userId = context.getUserIdOrDefault();
|
|
236
|
-
|
|
237
|
-
return (
|
|
238
|
-
<div>
|
|
239
|
-
<div data-testid="current-user-id">{userId}</div>
|
|
240
|
-
</div>
|
|
241
|
-
);
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
renderWithProviders(
|
|
245
|
-
<>
|
|
246
|
-
<ComponentWithActions />
|
|
247
|
-
<AtomReaderComponent />
|
|
248
|
-
</>,
|
|
249
|
-
);
|
|
250
|
-
|
|
251
|
-
// Wait for the atom to be set
|
|
252
|
-
await waitFor(() => {
|
|
253
|
-
const atomValue = screen.getByTestId('atom-reader').textContent;
|
|
254
|
-
expect(atomValue).not.toBe('not-set');
|
|
255
|
-
});
|
|
256
|
-
|
|
257
|
-
// Both components should see the same atom value
|
|
258
|
-
// Note: The atom is set by useUserIdentity's useEffect, which runs after
|
|
259
|
-
// the override is set in localStorage, so it should reflect the override
|
|
260
|
-
await waitFor(() => {
|
|
261
|
-
const atomValue = screen.getByTestId('atom-reader').textContent;
|
|
262
|
-
// The atom should be set to the override value since it was set before
|
|
263
|
-
// the component mounted, or it will be the generated default
|
|
264
|
-
expect(atomValue).toBeTruthy();
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
236
|
});
|
|
268
237
|
|
|
269
238
|
describe('getUserIdOrDefault', () => {
|
|
@@ -276,40 +245,6 @@ describe('UserIdentityProvider', () => {
|
|
|
276
245
|
expect(screen.getByTestId('user-id').textContent).toBe('override-123');
|
|
277
246
|
});
|
|
278
247
|
});
|
|
279
|
-
|
|
280
|
-
it('should return default userId if override does not exist', async () => {
|
|
281
|
-
localStorage.setItem('v1-spiffy-user-id-default', 'default-456');
|
|
282
|
-
|
|
283
|
-
renderWithProviders(<MockComponent />);
|
|
284
|
-
|
|
285
|
-
await waitFor(() => {
|
|
286
|
-
expect(screen.getByTestId('user-id').textContent).toBe('default-456');
|
|
287
|
-
});
|
|
288
|
-
});
|
|
289
|
-
|
|
290
|
-
it('should generate and store new userId if neither exists', async () => {
|
|
291
|
-
renderWithProviders(<MockComponent />);
|
|
292
|
-
|
|
293
|
-
await waitFor(() => {
|
|
294
|
-
const userId = screen.getByTestId('user-id').textContent;
|
|
295
|
-
expect(userId).toContain('spiffy-user-id-');
|
|
296
|
-
expect(userId).toContain('test-uuid-12345');
|
|
297
|
-
});
|
|
298
|
-
|
|
299
|
-
// Verify it was stored in localStorage
|
|
300
|
-
expect(localStorage.getItem('v1-spiffy-user-id-default')).toContain('spiffy-user-id-');
|
|
301
|
-
});
|
|
302
|
-
|
|
303
|
-
it('should prioritize override over default', async () => {
|
|
304
|
-
localStorage.setItem('v1-spiffy-user-id-override', 'override-789');
|
|
305
|
-
localStorage.setItem('v1-spiffy-user-id-default', 'default-012');
|
|
306
|
-
|
|
307
|
-
renderWithProviders(<MockComponent />);
|
|
308
|
-
|
|
309
|
-
await waitFor(() => {
|
|
310
|
-
expect(screen.getByTestId('user-id').textContent).toBe('override-789');
|
|
311
|
-
});
|
|
312
|
-
});
|
|
313
248
|
});
|
|
314
249
|
|
|
315
250
|
describe('LocalStorage Operations', () => {
|
|
@@ -323,33 +258,6 @@ describe('UserIdentityProvider', () => {
|
|
|
323
258
|
});
|
|
324
259
|
});
|
|
325
260
|
|
|
326
|
-
it('should get userId default from localStorage', async () => {
|
|
327
|
-
localStorage.setItem('v1-spiffy-user-id-default', 'test-default');
|
|
328
|
-
|
|
329
|
-
renderWithProviders(<MockComponent />);
|
|
330
|
-
|
|
331
|
-
await waitFor(() => {
|
|
332
|
-
expect(screen.getByTestId('user-id-default').textContent).toBe('test-default');
|
|
333
|
-
});
|
|
334
|
-
});
|
|
335
|
-
|
|
336
|
-
it('should set userId default in localStorage', async () => {
|
|
337
|
-
const ComponentWithSet: React.FC = () => {
|
|
338
|
-
const context = useUserIdentity();
|
|
339
|
-
React.useEffect(() => {
|
|
340
|
-
context.setUserIdDefaultInLocalStorage('new-default-id');
|
|
341
|
-
}, [context]);
|
|
342
|
-
|
|
343
|
-
return <div data-testid="set-component">Set</div>;
|
|
344
|
-
};
|
|
345
|
-
|
|
346
|
-
renderWithProviders(<ComponentWithSet />);
|
|
347
|
-
|
|
348
|
-
await waitFor(() => {
|
|
349
|
-
expect(localStorage.getItem('v1-spiffy-user-id-default')).toBe('new-default-id');
|
|
350
|
-
});
|
|
351
|
-
});
|
|
352
|
-
|
|
353
261
|
it('should set userId override in localStorage', async () => {
|
|
354
262
|
const ComponentWithSet: React.FC = () => {
|
|
355
263
|
const context = useUserIdentity();
|
|
@@ -386,27 +294,6 @@ describe('UserIdentityProvider', () => {
|
|
|
386
294
|
});
|
|
387
295
|
});
|
|
388
296
|
|
|
389
|
-
it('should log info when setting userId default', async () => {
|
|
390
|
-
const logSpy = vi.spyOn(Logger, 'logInfo');
|
|
391
|
-
|
|
392
|
-
const ComponentWithSet: React.FC = () => {
|
|
393
|
-
const context = useUserIdentity();
|
|
394
|
-
React.useEffect(() => {
|
|
395
|
-
context.setUserIdDefaultInLocalStorage('logged-default-id');
|
|
396
|
-
}, [context]);
|
|
397
|
-
|
|
398
|
-
return <div>Set</div>;
|
|
399
|
-
};
|
|
400
|
-
|
|
401
|
-
renderWithProviders(<ComponentWithSet />);
|
|
402
|
-
|
|
403
|
-
await waitFor(() => {
|
|
404
|
-
expect(logSpy).toHaveBeenCalledWith(
|
|
405
|
-
'setUserIdDefaultInLocalStorage - Setting user_id=logged-default-id',
|
|
406
|
-
);
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
|
|
410
297
|
it('should log info when setting userId override', async () => {
|
|
411
298
|
const logSpy = vi.spyOn(Logger, 'logInfo');
|
|
412
299
|
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, {
|
|
2
|
+
ReactNode,
|
|
3
|
+
createContext,
|
|
4
|
+
useCallback,
|
|
5
|
+
useContext,
|
|
6
|
+
useEffect,
|
|
7
|
+
useMemo,
|
|
8
|
+
useState,
|
|
9
|
+
} from 'react';
|
|
2
10
|
import UAParser from 'ua-parser-js';
|
|
3
11
|
import Logger from 'src/application/logging/logger';
|
|
4
12
|
import CommerceApiClient from 'src/application/commerce-api';
|
|
5
|
-
import { v4 as uuid } from 'uuid';
|
|
6
13
|
import { ClientDetails } from 'src/application/models/clientDetails';
|
|
7
14
|
import { useLocalStorage } from 'src/contexts/localStorageContext';
|
|
8
15
|
import { useSetAtom } from 'jotai';
|
|
9
16
|
import { userIdAtom } from 'src/atoms/app';
|
|
17
|
+
import { UserIdentityService } from 'src/services/userIdentityService';
|
|
10
18
|
|
|
11
19
|
// Helper function from the original service
|
|
12
20
|
const getUserAgentDetails = (): ClientDetails => {
|
|
@@ -27,10 +35,8 @@ const getUserAgentDetails = (): ClientDetails => {
|
|
|
27
35
|
|
|
28
36
|
export interface UserIdentityContextType {
|
|
29
37
|
identifyUser: () => Promise<void>;
|
|
30
|
-
getUserIdOrDefault: () => string
|
|
38
|
+
getUserIdOrDefault: () => Promise<string>;
|
|
31
39
|
getUserIdOverrideFromLocalStorage: () => string | undefined;
|
|
32
|
-
getUserIdDefaultFromLocalStorage: () => string | undefined;
|
|
33
|
-
setUserIdDefaultInLocalStorage: (userId: string) => string;
|
|
34
40
|
setUserIdOverrideInLocalStorage: (userId: string) => string;
|
|
35
41
|
clearUserIdOverrideInLocalStorage: () => void;
|
|
36
42
|
isReady: boolean;
|
|
@@ -38,7 +44,15 @@ export interface UserIdentityContextType {
|
|
|
38
44
|
|
|
39
45
|
const UserIdentityContext = createContext<UserIdentityContextType | undefined>(undefined);
|
|
40
46
|
|
|
41
|
-
|
|
47
|
+
interface UserIdentityProviderProps {
|
|
48
|
+
userIdService: UserIdentityService;
|
|
49
|
+
children: ReactNode;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const UserIdentityProvider: React.FC<UserIdentityProviderProps> = ({
|
|
53
|
+
userIdService: inputService,
|
|
54
|
+
children,
|
|
55
|
+
}) => {
|
|
42
56
|
const [localUserId, setLocalUserId] = useState<string | undefined>(undefined);
|
|
43
57
|
const setUserId = useSetAtom(userIdAtom);
|
|
44
58
|
const { getItem, setItem, isAvailable: localStorageIsReady } = useLocalStorage();
|
|
@@ -52,26 +66,12 @@ export const UserIdentityProvider: React.FC<{ children: React.ReactNode }> = ({
|
|
|
52
66
|
}, [localStorageIsReady]);
|
|
53
67
|
|
|
54
68
|
const USER_ID_OVERRIDE_KEY = 'v1-spiffy-user-id-override';
|
|
55
|
-
const USER_ID_DEFAULT_KEY = 'v1-spiffy-user-id-default';
|
|
56
69
|
|
|
70
|
+
// @deprecated
|
|
57
71
|
const getUserIdOverrideFromLocalStorage = useCallback((): string | undefined => {
|
|
58
72
|
return getItem(USER_ID_OVERRIDE_KEY) ?? undefined;
|
|
59
73
|
}, [getItem]);
|
|
60
74
|
|
|
61
|
-
const getUserIdDefaultFromLocalStorage = useCallback((): string | undefined => {
|
|
62
|
-
return getItem(USER_ID_DEFAULT_KEY) ?? undefined;
|
|
63
|
-
}, [getItem]);
|
|
64
|
-
|
|
65
|
-
const setUserIdDefaultInLocalStorage = useCallback(
|
|
66
|
-
(userId: string): string => {
|
|
67
|
-
Logger.logInfo(`setUserIdDefaultInLocalStorage - Setting user_id=${userId}`);
|
|
68
|
-
setItem(USER_ID_DEFAULT_KEY, userId);
|
|
69
|
-
// window.dispatchEvent is handled by useLocalStorage now
|
|
70
|
-
return userId;
|
|
71
|
-
},
|
|
72
|
-
[setItem, USER_ID_DEFAULT_KEY],
|
|
73
|
-
);
|
|
74
|
-
|
|
75
75
|
const setUserIdOverrideInLocalStorage = useCallback(
|
|
76
76
|
(userId: string): string => {
|
|
77
77
|
Logger.logInfo(`setUserIdOverrideInLocalStorage - Setting user_id=${userId}`);
|
|
@@ -89,23 +89,29 @@ export const UserIdentityProvider: React.FC<{ children: React.ReactNode }> = ({
|
|
|
89
89
|
setItem(USER_ID_OVERRIDE_KEY, ''); // Set to empty string to clear
|
|
90
90
|
}, [setItem, USER_ID_OVERRIDE_KEY]);
|
|
91
91
|
|
|
92
|
-
const getUserIdOrDefault = useCallback((): string => {
|
|
92
|
+
const getUserIdOrDefault = useCallback(async (): Promise<string> => {
|
|
93
93
|
const userIdOverride = getUserIdOverrideFromLocalStorage();
|
|
94
94
|
if (userIdOverride) {
|
|
95
95
|
return userIdOverride;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
98
|
+
try {
|
|
99
|
+
// NOTE: This uses EnviveAnalytics under the hood to determine the userID
|
|
100
|
+
const enviveUserId = await inputService.getUserIdOrDefault();
|
|
102
101
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
if (!enviveUserId) {
|
|
103
|
+
throw new Error(
|
|
104
|
+
'[spiffy-ai] EnviveAnalytics.resolveEnviveUserId() returned null/undefined - this should never happen',
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return enviveUserId;
|
|
109
|
+
} catch (error: unknown) {
|
|
110
|
+
Logger.logError('[spiffy-ai] CRITICAL: Failed to get user ID from EnviveAnalytics', error);
|
|
111
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
112
|
+
throw new Error(`[spiffy-ai] CRITICAL: User ID resolution failed: ${errorMessage}`);
|
|
113
|
+
}
|
|
114
|
+
}, [getUserIdOverrideFromLocalStorage]);
|
|
109
115
|
|
|
110
116
|
const identifyUser = useCallback(async (): Promise<void> => {
|
|
111
117
|
if (!isReady) {
|
|
@@ -117,7 +123,7 @@ export const UserIdentityProvider: React.FC<{ children: React.ReactNode }> = ({
|
|
|
117
123
|
// Temporarily commented out until WindowDataLayerService is resolved
|
|
118
124
|
// const cdpUserId = WindowDataLayerService.getGoogleAnalyticsClientId();
|
|
119
125
|
const cdpUserId = 'UNKNOWN_CDP_USER_ID'; // Placeholder
|
|
120
|
-
const userId = getUserIdOrDefault();
|
|
126
|
+
const userId = await getUserIdOrDefault();
|
|
121
127
|
const userAgentDetails = getUserAgentDetails();
|
|
122
128
|
|
|
123
129
|
if (!cdpUserId) {
|
|
@@ -136,8 +142,6 @@ export const UserIdentityProvider: React.FC<{ children: React.ReactNode }> = ({
|
|
|
136
142
|
identifyUser,
|
|
137
143
|
getUserIdOrDefault,
|
|
138
144
|
getUserIdOverrideFromLocalStorage,
|
|
139
|
-
getUserIdDefaultFromLocalStorage,
|
|
140
|
-
setUserIdDefaultInLocalStorage,
|
|
141
145
|
setUserIdOverrideInLocalStorage,
|
|
142
146
|
clearUserIdOverrideInLocalStorage,
|
|
143
147
|
isReady,
|
|
@@ -146,8 +150,6 @@ export const UserIdentityProvider: React.FC<{ children: React.ReactNode }> = ({
|
|
|
146
150
|
identifyUser,
|
|
147
151
|
getUserIdOrDefault,
|
|
148
152
|
getUserIdOverrideFromLocalStorage,
|
|
149
|
-
getUserIdDefaultFromLocalStorage,
|
|
150
|
-
setUserIdDefaultInLocalStorage,
|
|
151
153
|
setUserIdOverrideInLocalStorage,
|
|
152
154
|
clearUserIdOverrideInLocalStorage,
|
|
153
155
|
isReady,
|
|
@@ -155,11 +157,15 @@ export const UserIdentityProvider: React.FC<{ children: React.ReactNode }> = ({
|
|
|
155
157
|
);
|
|
156
158
|
useEffect(() => {
|
|
157
159
|
if (isReady && !localUserId) {
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
160
|
+
const setUserIdStates = async () => {
|
|
161
|
+
const newUserId = await getUserIdOrDefault();
|
|
162
|
+
console.log('useUserIdentity useEffect - setting localUserId', newUserId);
|
|
163
|
+
setLocalUserId(newUserId);
|
|
164
|
+
setUserId(newUserId);
|
|
165
|
+
};
|
|
166
|
+
setUserIdStates();
|
|
161
167
|
}
|
|
162
|
-
}, [isReady, localUserId, setUserId]);
|
|
168
|
+
}, [getUserIdOrDefault, isReady, localUserId, setUserId]);
|
|
163
169
|
|
|
164
170
|
if (!localUserId) {
|
|
165
171
|
return null;
|
|
@@ -35,6 +35,10 @@ export const WidgetConfigProvider: React.FC<{ children: ReactNode }> = ({ childr
|
|
|
35
35
|
const response = frontendConfig?.widgetConfigs?.[widgetConfigId];
|
|
36
36
|
Logger.logInfo('widgetConfigContext | returning widget config response', response);
|
|
37
37
|
|
|
38
|
+
if (widgetConfigId === 'fake-widget-config-id') {
|
|
39
|
+
return {} as WidgetConfigV3;
|
|
40
|
+
}
|
|
41
|
+
|
|
38
42
|
if (
|
|
39
43
|
[
|
|
40
44
|
WidgetTypeV3.SocialProofV3,
|
|
@@ -51,8 +51,9 @@ export interface ElementObserverUtility {
|
|
|
51
51
|
*/
|
|
52
52
|
export const useElementObserver = (selector: NodeSelector): ElementObserverUtility => {
|
|
53
53
|
const INITIAL_RENDER_STATE = true;
|
|
54
|
-
const eoRef = useRef<ElementObserver>(
|
|
54
|
+
const eoRef = useRef<ElementObserver | null>(null);
|
|
55
55
|
const [renderBlocked, setRenderBlocked] = useState(INITIAL_RENDER_STATE);
|
|
56
|
+
eoRef.current = DOMObserver.add(selector);
|
|
56
57
|
|
|
57
58
|
/**
|
|
58
59
|
* Fired every time the HTML element changes.
|
|
@@ -25,6 +25,7 @@ import { ProductSorting } from 'src/atoms/search/types';
|
|
|
25
25
|
import { SearchResult } from 'src/application/models/api/search';
|
|
26
26
|
import { SearchResultsState } from 'src/hooks/utils';
|
|
27
27
|
import { SearchResponseProduct } from '@spiffy-ai/commerce-api-client';
|
|
28
|
+
import { UserIdentityService } from 'src/services/userIdentityService';
|
|
28
29
|
import { useSearch } from '../useSearch';
|
|
29
30
|
|
|
30
31
|
// Mock dependencies
|
|
@@ -171,6 +172,15 @@ vi.mock('src/events', () => ({
|
|
|
171
172
|
},
|
|
172
173
|
}));
|
|
173
174
|
|
|
175
|
+
const mockGetUserId = vi.fn().mockResolvedValue('test-user-id');
|
|
176
|
+
const mockInitializeUser = vi.fn().mockResolvedValue(undefined);
|
|
177
|
+
|
|
178
|
+
const testUserIdService = {
|
|
179
|
+
getUserIdOrDefault: mockGetUserId,
|
|
180
|
+
initializeUser: mockInitializeUser,
|
|
181
|
+
getUserIdOverrideFromLocalStorage: vi.fn().mockReturnValue(undefined),
|
|
182
|
+
} as unknown as UserIdentityService;
|
|
183
|
+
|
|
174
184
|
// FeatureFlagService
|
|
175
185
|
const testFeatureFlagService = new FeatureFlagService([]);
|
|
176
186
|
|
|
@@ -398,7 +408,7 @@ const TestWrapper: React.FC<{
|
|
|
398
408
|
>
|
|
399
409
|
<LocalStorageProvider>
|
|
400
410
|
<GraphQLProvider>
|
|
401
|
-
<UserIdentityProvider>
|
|
411
|
+
<UserIdentityProvider userIdService={testUserIdService}>
|
|
402
412
|
<FeatureFlagServiceProvider featureFlagService={testFeatureFlagService}>
|
|
403
413
|
<AmplitudeProvider>
|
|
404
414
|
<NewOrgConfigProvider>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './salesAgentMockData';
|