@envive-ai/react-widgets-v3 0.3.11 → 0.3.13
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/CXIntegration/hooks/useUnifiedCXButton.cjs +2 -1
- package/dist/CXIntegration/hooks/useUnifiedCXButton.js +2 -1
- package/dist/CXIntegration/implementations/useEightByEightUnifiedCXButton.cjs +54 -0
- package/dist/CXIntegration/implementations/useEightByEightUnifiedCXButton.js +53 -0
- package/dist/CXIntegration/implementations/useGladlyUnifiedCXButton.cjs +6 -0
- package/dist/CXIntegration/implementations/useGladlyUnifiedCXButton.js +6 -0
- package/dist/CXIntegration/implementations/useGorgiasUnifiedCXButton.cjs +7 -6
- package/dist/CXIntegration/implementations/useGorgiasUnifiedCXButton.js +7 -6
- package/dist/CXIntegration/implementations/useGrooveUnifiedCXButton.cjs +10 -11
- package/dist/CXIntegration/implementations/useGrooveUnifiedCXButton.js +10 -11
- package/dist/CXIntegration/implementations/useKustomerUnifiedCXButton.cjs +10 -7
- package/dist/CXIntegration/implementations/useKustomerUnifiedCXButton.js +10 -7
- package/dist/CXIntegration/implementations/useReDoUnifiedCXButton.cjs +2 -2
- package/dist/CXIntegration/implementations/useReDoUnifiedCXButton.js +2 -2
- package/dist/CXIntegration/implementations/useRichpanelUnifiedCXButton.cjs +9 -7
- package/dist/CXIntegration/implementations/useRichpanelUnifiedCXButton.js +9 -7
- package/dist/CXIntegration/implementations/useShopifyChatUnifiedCXButton.cjs +13 -16
- package/dist/CXIntegration/implementations/useShopifyChatUnifiedCXButton.js +13 -16
- package/dist/CXIntegration/implementations/useTidioUnifiedCXButton.cjs +6 -0
- package/dist/CXIntegration/implementations/useTidioUnifiedCXButton.js +6 -0
- package/dist/CXIntegration/implementations/useZendeskUnifiedCXButton.cjs +9 -7
- package/dist/CXIntegration/implementations/useZendeskUnifiedCXButton.js +9 -7
- package/dist/CXIntegration/implementations/useZowieUnifiedCXButton.cjs +6 -0
- package/dist/CXIntegration/implementations/useZowieUnifiedCXButton.js +6 -0
- package/dist/CXIntegration/types.cjs +1 -0
- package/dist/CXIntegration/types.js +1 -0
- package/dist/CXIntegration/utils/functions.cjs +2 -0
- package/dist/CXIntegration/utils/functions.js +2 -0
- package/dist/debug/debugBar.cjs +0 -1
- package/dist/debug/debugBar.js +0 -1
- package/dist/hocs/withBaseWidget/withBaseWidget.d.cts +2 -2
- package/dist/hocs/withBaseWidget/withBaseWidget.d.ts +2 -2
- package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingRequest.cjs +4 -0
- package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/WidgetTextRequest.cjs +2 -0
- package/dist/packages/widgets/dist/SearchResults/SearchResultsWidget.d.ts +2 -2
- package/dist/packages/widgets/dist/SearchZeroState/SearchZeroStateWidget.d.ts +2 -2
- package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.cts +3 -3
- package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.ts +3 -3
- package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.cts +3 -3
- package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.ts +3 -3
- package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.d.cts +3 -3
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.cjs +64 -36
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.cts +2 -2
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.ts +2 -2
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.js +65 -37
- package/dist/widgets/FloatingChatWidget/hooks/useAutoPopup.cjs +50 -0
- package/dist/widgets/FloatingChatWidget/hooks/useAutoPopup.js +49 -0
- package/dist/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.d.cts +2 -2
- package/dist/widgets/ProductCardWidget/ProductCardWidget.d.cts +2 -2
- package/dist/widgets/ProductCardWidget/ProductCardWidget.d.ts +2 -2
- package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.ts +3 -3
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.cjs +1 -1
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.d.cts +2 -2
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.d.ts +2 -2
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.js +1 -1
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.cjs +8 -8
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.cts +2 -2
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.ts +2 -2
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.js +8 -8
- package/dist/widgets/SocialProofWidget/SocialProofWidget.d.cts +3 -3
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.cjs +1 -1
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.cts +2 -2
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.ts +2 -2
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.js +1 -1
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.cjs +8 -8
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.cts +2 -2
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.ts +2 -2
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.js +8 -8
- package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.cts +3 -3
- package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.ts +3 -3
- package/dist/widgets/dist/SearchResults/SearchResultsWidget.d.cts +2 -2
- package/dist/widgets/dist/SearchZeroState/SearchZeroStateWidget.d.cts +2 -2
- package/package.json +1 -1
- package/src/CXIntegration/hooks/useUnifiedCXButton.ts +4 -1
- package/src/CXIntegration/implementations/useEightByEightUnifiedCXButton.ts +91 -0
- package/src/CXIntegration/implementations/useGladlyUnifiedCXButton.ts +5 -0
- package/src/CXIntegration/implementations/useGorgiasUnifiedCXButton.ts +11 -8
- package/src/CXIntegration/implementations/useGrooveUnifiedCXButton.ts +12 -15
- package/src/CXIntegration/implementations/useKustomerUnifiedCXButton.ts +11 -11
- package/src/CXIntegration/implementations/useReDoUnifiedCXButton.ts +2 -4
- package/src/CXIntegration/implementations/useRichpanelUnifiedCXButton.ts +9 -10
- package/src/CXIntegration/implementations/useShopifyChatUnifiedCXButton.ts +18 -28
- package/src/CXIntegration/implementations/useTidioUnifiedCXButton.ts +5 -0
- package/src/CXIntegration/implementations/useZendeskUnifiedCXButton.ts +15 -8
- package/src/CXIntegration/implementations/useZowieUnifiedCXButton.ts +5 -0
- package/src/CXIntegration/types.ts +2 -0
- package/src/CXIntegration/utils/functions.ts +4 -0
- package/src/debug/debugBar.tsx +0 -1
- package/src/widgets/FloatingChatWidget/FloatingChatWidget.tsx +109 -66
- package/src/widgets/FloatingChatWidget/hooks/useAutoPopup.ts +65 -0
- package/src/widgets/PromptCarouselWidget/PromptCarouselWidget.tsx +1 -1
- package/src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.tsx +12 -12
- package/src/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.tsx +1 -1
- package/src/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.tsx +12 -12
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime13 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/FloatingChatWidget/FloatingChatWidget.d.ts
|
|
4
4
|
interface FloatingChatWidgetProps {
|
|
@@ -9,7 +9,7 @@ declare const FloatingChatWidget: {
|
|
|
9
9
|
({
|
|
10
10
|
previewButtonOnly,
|
|
11
11
|
previewChatAlwaysOpen
|
|
12
|
-
}?: FloatingChatWidgetProps):
|
|
12
|
+
}?: FloatingChatWidgetProps): react_jsx_runtime13.JSX.Element;
|
|
13
13
|
displayName: string;
|
|
14
14
|
};
|
|
15
15
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime14 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/FloatingChatWidget/FloatingChatWidget.d.ts
|
|
4
4
|
interface FloatingChatWidgetProps {
|
|
@@ -9,7 +9,7 @@ declare const FloatingChatWidget: {
|
|
|
9
9
|
({
|
|
10
10
|
previewButtonOnly,
|
|
11
11
|
previewChatAlwaysOpen
|
|
12
|
-
}?: FloatingChatWidgetProps):
|
|
12
|
+
}?: FloatingChatWidgetProps): react_jsx_runtime14.JSX.Element;
|
|
13
13
|
displayName: string;
|
|
14
14
|
};
|
|
15
15
|
//#endregion
|
|
@@ -7,7 +7,8 @@ import { CustomerServiceType } from "../../CXIntegration/types.js";
|
|
|
7
7
|
import { FLOATING_BUTTON_ID } from "./constants.js";
|
|
8
8
|
import { useUnifiedCXButton } from "../../CXIntegration/hooks/useUnifiedCXButton.js";
|
|
9
9
|
import { useFloatingButtonVisibility } from "./hooks/useFloatingButtonVisibility.js";
|
|
10
|
-
import {
|
|
10
|
+
import { useAutoPopup } from "./hooks/useAutoPopup.js";
|
|
11
|
+
import { Suspense, lazy, useEffect, useMemo, useRef, useState } from "react";
|
|
11
12
|
import { SpiffyMetricsEventName, useAmplitude } from "@envive-ai/react-hooks/contexts/amplitudeContext";
|
|
12
13
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
13
14
|
import { WidgetTypeV3 } from "@envive-ai/react-hooks/contexts/typesV3";
|
|
@@ -19,29 +20,49 @@ import { FloatingButton } from "@envive-ai/react-toolkit-v3/FloatingButton";
|
|
|
19
20
|
|
|
20
21
|
//#region src/widgets/FloatingChatWidget/FloatingChatWidget.tsx
|
|
21
22
|
const FloatingChat = lazy(async () => ({ default: (await import("@envive-ai/react-toolkit-v3/FloatingChat")).FloatingChat }));
|
|
23
|
+
/**
|
|
24
|
+
* Wrapper component that isolates the useUnifiedCXButton hook call.
|
|
25
|
+
* Provider implementations use different React hooks internally, so the
|
|
26
|
+
* provider value must be stable across renders. Use a `key` prop based on
|
|
27
|
+
* provider to force a clean remount when the provider changes.
|
|
28
|
+
*/
|
|
29
|
+
const CXButtonProvider = ({ provider, enabled, suppressMerchantButton, onSwitchToAgent, onCXClose, children }) => {
|
|
30
|
+
const { isSwitchEnabled, toggle } = useUnifiedCXButton({
|
|
31
|
+
provider,
|
|
32
|
+
enabled,
|
|
33
|
+
suppressMerchantButton,
|
|
34
|
+
onSwitchToAgent,
|
|
35
|
+
onCXClose
|
|
36
|
+
}) ?? {};
|
|
37
|
+
return /* @__PURE__ */ jsx(Fragment, { children: children({
|
|
38
|
+
isSwitchEnabled,
|
|
39
|
+
toggle
|
|
40
|
+
}) });
|
|
41
|
+
};
|
|
22
42
|
const FloatingChatWidgetHandler = (props) => {
|
|
23
43
|
const { previewButtonOnly, previewChatAlwaysOpen } = props;
|
|
24
44
|
const salesAgentData = useSalesAgent();
|
|
25
45
|
const { userHasInteractedValue } = useGetWidgetStatus_default();
|
|
26
46
|
const { uiConfig, isUiConfigLoading, hardcopyContent } = props;
|
|
27
|
-
const {
|
|
28
|
-
|
|
29
|
-
enabled: false,
|
|
30
|
-
suppressMerchantButton: false
|
|
31
|
-
}) ?? {};
|
|
32
|
-
const { floatingButton } = uiConfig ?? {};
|
|
47
|
+
const { customerServiceIntegration, floatingButton, floatingChat } = uiConfig ?? {};
|
|
48
|
+
const cxProvider = customerServiceIntegration?.provider ?? CustomerServiceType.unsupported;
|
|
33
49
|
const { isOpen, openChat, closeChat } = useChatToggle();
|
|
50
|
+
const [isCXOpen, setIsCXOpen] = useState(false);
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (isOpen) setIsCXOpen(false);
|
|
53
|
+
}, [isOpen]);
|
|
34
54
|
const { shouldShowFloatingButton } = useFloatingButtonVisibility({
|
|
35
55
|
floatingButtonShowConfig: floatingButton?.showOption,
|
|
36
56
|
isChatOpen: isOpen,
|
|
37
57
|
userHasInteracted: userHasInteractedValue
|
|
38
58
|
});
|
|
39
59
|
const effectiveIsOpen = previewChatAlwaysOpen ? true : isOpen;
|
|
40
|
-
const buttonShouldRender = previewButtonOnly ? true : !effectiveIsOpen && shouldShowFloatingButton;
|
|
60
|
+
const buttonShouldRender = previewButtonOnly ? true : !effectiveIsOpen && shouldShowFloatingButton && !isCXOpen;
|
|
41
61
|
const theme = useMemo(() => {
|
|
42
62
|
if (isUiConfigLoading || !uiConfig) return Theme.STANDARD;
|
|
43
63
|
return uiConfig?.lookAndFeel?.theme ?? Theme.GLOBAL_CUSTOM;
|
|
44
64
|
}, [isUiConfigLoading, uiConfig]);
|
|
65
|
+
useAutoPopup({ autoPopupConfig: floatingChat?.autoPopupConfig });
|
|
45
66
|
const { trackEvent } = useAmplitude();
|
|
46
67
|
const hasTrackedEvent = useRef(false);
|
|
47
68
|
useEffect(() => {
|
|
@@ -56,35 +77,42 @@ const FloatingChatWidgetHandler = (props) => {
|
|
|
56
77
|
hasTrackedEvent.current = true;
|
|
57
78
|
}
|
|
58
79
|
}, [trackEvent, buttonShouldRender]);
|
|
59
|
-
return /* @__PURE__ */
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
return /* @__PURE__ */ jsx(CXButtonProvider, {
|
|
81
|
+
provider: cxProvider,
|
|
82
|
+
enabled: customerServiceIntegration?.enabled ?? false,
|
|
83
|
+
suppressMerchantButton: customerServiceIntegration?.suppressMerchantButton ?? false,
|
|
84
|
+
onSwitchToAgent: () => setIsCXOpen(true),
|
|
85
|
+
onCXClose: () => setIsCXOpen(false),
|
|
86
|
+
children: ({ isSwitchEnabled, toggle }) => /* @__PURE__ */ jsxs(Fragment, { children: [(previewChatAlwaysOpen || effectiveIsOpen) && !previewButtonOnly && /* @__PURE__ */ jsx(FloatingChatOverlay, {
|
|
87
|
+
isOpened: effectiveIsOpen,
|
|
88
|
+
onClose: previewChatAlwaysOpen ? () => {} : () => closeChat(ChatElementDisplayLocationV3.FLOATING_CHAT_OVERLAY),
|
|
89
|
+
previewMode: !!previewChatAlwaysOpen,
|
|
90
|
+
children: /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(FloatingChat, {
|
|
91
|
+
theme,
|
|
92
|
+
salesAgentData,
|
|
93
|
+
hardcopyContent,
|
|
94
|
+
floatingChatConfig: uiConfig?.floatingChat ?? {},
|
|
95
|
+
lookAndFeelConfig: uiConfig?.lookAndFeel ?? {},
|
|
96
|
+
isCXButtonSwitchEnabled: !!isSwitchEnabled?.(),
|
|
97
|
+
isFloatingChatOpen: effectiveIsOpen,
|
|
98
|
+
onToggleCXButton: toggle,
|
|
99
|
+
debugBar: /* @__PURE__ */ jsx(DebugBar, {}),
|
|
100
|
+
onClose: previewChatAlwaysOpen ? () => {} : () => closeChat(ChatElementDisplayLocationV3.FLOATING_CHAT_CLOSE_BUTTON)
|
|
101
|
+
}) })
|
|
102
|
+
}), buttonShouldRender && /* @__PURE__ */ jsx(FloatingButton, {
|
|
103
|
+
id: FLOATING_BUTTON_ID,
|
|
104
|
+
variant: floatingButton?.style,
|
|
105
|
+
mode: floatingButton?.mode,
|
|
106
|
+
backgroundColor: floatingButton?.backgroundColor,
|
|
107
|
+
onClick: previewButtonOnly ? () => {} : () => openChat(ChatElementDisplayLocationV3.FLOATING_BUTTON),
|
|
108
|
+
customIcon: floatingButton?.iconSVGSrc,
|
|
109
|
+
show: floatingButton?.showOption,
|
|
110
|
+
location: floatingButton?.position,
|
|
111
|
+
hasInteractionHappened: userHasInteractedValue,
|
|
112
|
+
ariaLabel: "Open chat",
|
|
113
|
+
previewMode: !!previewButtonOnly
|
|
114
|
+
})] })
|
|
115
|
+
}, cxProvider);
|
|
88
116
|
};
|
|
89
117
|
const FloatingChatWidgetWithBaseWidget = withBaseWidget(FloatingChatWidgetHandler);
|
|
90
118
|
const FloatingChatWidget = ({ previewButtonOnly, previewChatAlwaysOpen } = {}) => {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let react = require("react");
|
|
3
|
+
let __envive_ai_react_hooks_hooks_ChatToggle = require("@envive-ai/react-hooks/hooks/ChatToggle");
|
|
4
|
+
let __envive_ai_react_hooks_application_models = require("@envive-ai/react-hooks/application/models");
|
|
5
|
+
let __envive_ai_react_hooks_contexts_featureFlagServiceContext = require("@envive-ai/react-hooks/contexts/featureFlagServiceContext");
|
|
6
|
+
|
|
7
|
+
//#region src/widgets/FloatingChatWidget/hooks/useAutoPopup.ts
|
|
8
|
+
const useAutoPopup = ({ autoPopupConfig }) => {
|
|
9
|
+
const { isOpen, openChat } = (0, __envive_ai_react_hooks_hooks_ChatToggle.useChatToggle)();
|
|
10
|
+
const { featureFlagService } = (0, __envive_ai_react_hooks_contexts_featureFlagServiceContext.useFeatureFlagService)();
|
|
11
|
+
const hasBeenOpenedRef = (0, react.useRef)(false);
|
|
12
|
+
const autoPopupTimerRef = (0, react.useRef)(null);
|
|
13
|
+
const isReferrerBasedPromptEnabled = (0, react.useMemo)(() => featureFlagService.isFeatureGateEnabled(__envive_ai_react_hooks_application_models.FeatureGates.IsReferrerBasedPromptEnabled), [featureFlagService]);
|
|
14
|
+
(0, react.useEffect)(() => {
|
|
15
|
+
if (!hasBeenOpenedRef.current && isOpen) hasBeenOpenedRef.current = true;
|
|
16
|
+
}, [isOpen]);
|
|
17
|
+
const openChatSafely = (0, react.useCallback)((triggerLocation) => {
|
|
18
|
+
if (!hasBeenOpenedRef.current) {
|
|
19
|
+
hasBeenOpenedRef.current = true;
|
|
20
|
+
openChat(triggerLocation);
|
|
21
|
+
}
|
|
22
|
+
}, [openChat]);
|
|
23
|
+
(0, react.useEffect)(() => {
|
|
24
|
+
const cleanup = () => {
|
|
25
|
+
if (autoPopupTimerRef.current) clearTimeout(autoPopupTimerRef.current);
|
|
26
|
+
};
|
|
27
|
+
if (!autoPopupConfig || hasBeenOpenedRef.current) return cleanup;
|
|
28
|
+
for (const trigger of autoPopupConfig.triggers) {
|
|
29
|
+
if (trigger.trigger.type === "referrer") {
|
|
30
|
+
if (!isReferrerBasedPromptEnabled) break;
|
|
31
|
+
const utmSource = new URLSearchParams(window.location.search).get("utm_source");
|
|
32
|
+
if (trigger.trigger.referrers.includes(utmSource)) autoPopupTimerRef.current = setTimeout(() => {
|
|
33
|
+
openChatSafely(__envive_ai_react_hooks_application_models.ChatElementDisplayLocationV3.REFERRER_BASED_PROMPT);
|
|
34
|
+
}, trigger.delay);
|
|
35
|
+
}
|
|
36
|
+
if (trigger.trigger.type === "automatic") autoPopupTimerRef.current = setTimeout(() => {
|
|
37
|
+
openChatSafely(__envive_ai_react_hooks_application_models.ChatElementDisplayLocationV3.AUTOMATIC_PROMPT);
|
|
38
|
+
}, trigger.delay);
|
|
39
|
+
}
|
|
40
|
+
return cleanup;
|
|
41
|
+
}, [
|
|
42
|
+
autoPopupConfig,
|
|
43
|
+
isOpen,
|
|
44
|
+
isReferrerBasedPromptEnabled,
|
|
45
|
+
openChatSafely
|
|
46
|
+
]);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
//#endregion
|
|
50
|
+
exports.useAutoPopup = useAutoPopup;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { useChatToggle } from "@envive-ai/react-hooks/hooks/ChatToggle";
|
|
3
|
+
import { ChatElementDisplayLocationV3, FeatureGates } from "@envive-ai/react-hooks/application/models";
|
|
4
|
+
import { useFeatureFlagService } from "@envive-ai/react-hooks/contexts/featureFlagServiceContext";
|
|
5
|
+
|
|
6
|
+
//#region src/widgets/FloatingChatWidget/hooks/useAutoPopup.ts
|
|
7
|
+
const useAutoPopup = ({ autoPopupConfig }) => {
|
|
8
|
+
const { isOpen, openChat } = useChatToggle();
|
|
9
|
+
const { featureFlagService } = useFeatureFlagService();
|
|
10
|
+
const hasBeenOpenedRef = useRef(false);
|
|
11
|
+
const autoPopupTimerRef = useRef(null);
|
|
12
|
+
const isReferrerBasedPromptEnabled = useMemo(() => featureFlagService.isFeatureGateEnabled(FeatureGates.IsReferrerBasedPromptEnabled), [featureFlagService]);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (!hasBeenOpenedRef.current && isOpen) hasBeenOpenedRef.current = true;
|
|
15
|
+
}, [isOpen]);
|
|
16
|
+
const openChatSafely = useCallback((triggerLocation) => {
|
|
17
|
+
if (!hasBeenOpenedRef.current) {
|
|
18
|
+
hasBeenOpenedRef.current = true;
|
|
19
|
+
openChat(triggerLocation);
|
|
20
|
+
}
|
|
21
|
+
}, [openChat]);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const cleanup = () => {
|
|
24
|
+
if (autoPopupTimerRef.current) clearTimeout(autoPopupTimerRef.current);
|
|
25
|
+
};
|
|
26
|
+
if (!autoPopupConfig || hasBeenOpenedRef.current) return cleanup;
|
|
27
|
+
for (const trigger of autoPopupConfig.triggers) {
|
|
28
|
+
if (trigger.trigger.type === "referrer") {
|
|
29
|
+
if (!isReferrerBasedPromptEnabled) break;
|
|
30
|
+
const utmSource = new URLSearchParams(window.location.search).get("utm_source");
|
|
31
|
+
if (trigger.trigger.referrers.includes(utmSource)) autoPopupTimerRef.current = setTimeout(() => {
|
|
32
|
+
openChatSafely(ChatElementDisplayLocationV3.REFERRER_BASED_PROMPT);
|
|
33
|
+
}, trigger.delay);
|
|
34
|
+
}
|
|
35
|
+
if (trigger.trigger.type === "automatic") autoPopupTimerRef.current = setTimeout(() => {
|
|
36
|
+
openChatSafely(ChatElementDisplayLocationV3.AUTOMATIC_PROMPT);
|
|
37
|
+
}, trigger.delay);
|
|
38
|
+
}
|
|
39
|
+
return cleanup;
|
|
40
|
+
}, [
|
|
41
|
+
autoPopupConfig,
|
|
42
|
+
isOpen,
|
|
43
|
+
isReferrerBasedPromptEnabled,
|
|
44
|
+
openChatSafely
|
|
45
|
+
]);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { useAutoPopup };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime11 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.d.ts
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ interface FullPageSalesAgentBaseWidgetProps {
|
|
|
8
8
|
declare const FullPageSalesAgentWidget: {
|
|
9
9
|
({
|
|
10
10
|
widgetConfigId
|
|
11
|
-
}: FullPageSalesAgentBaseWidgetProps):
|
|
11
|
+
}: FullPageSalesAgentBaseWidgetProps): react_jsx_runtime11.JSX.Element;
|
|
12
12
|
displayName: string;
|
|
13
13
|
};
|
|
14
14
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime14 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/ProductCardWidget/ProductCardWidget.d.ts
|
|
4
4
|
interface ProductCardWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface ProductCardWidgetProps {
|
|
|
7
7
|
declare const ProductCardWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: ProductCardWidgetProps):
|
|
10
|
+
}: ProductCardWidgetProps): react_jsx_runtime14.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime9 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/ProductCardWidget/ProductCardWidget.d.ts
|
|
4
4
|
interface ProductCardWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface ProductCardWidgetProps {
|
|
|
7
7
|
declare const ProductCardWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: ProductCardWidgetProps):
|
|
10
|
+
}: ProductCardWidgetProps): react_jsx_runtime9.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BaseWidgetProps } from "../../hocs/withBaseWidget/types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime2 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.ts
|
|
5
5
|
declare const PromptButtonCarouselWithImageWidgetWithBaseWidget: {
|
|
6
|
-
(props: BaseWidgetProps):
|
|
6
|
+
(props: BaseWidgetProps): react_jsx_runtime2.JSX.Element;
|
|
7
7
|
displayName: string;
|
|
8
8
|
};
|
|
9
9
|
interface PromptButtonCarouselWithImageWidgetProps {
|
|
@@ -12,7 +12,7 @@ interface PromptButtonCarouselWithImageWidgetProps {
|
|
|
12
12
|
declare const PromptButtonCarouselWithImageWidget: {
|
|
13
13
|
({
|
|
14
14
|
widgetConfigId
|
|
15
|
-
}: PromptButtonCarouselWithImageWidgetProps):
|
|
15
|
+
}: PromptButtonCarouselWithImageWidgetProps): react_jsx_runtime2.JSX.Element;
|
|
16
16
|
displayName: string;
|
|
17
17
|
};
|
|
18
18
|
//#endregion
|
|
@@ -39,7 +39,7 @@ const PromptCarouselWidgetHandler = (props) => {
|
|
|
39
39
|
const boldFirstButton = promptCarouselWidgetConfig?.boldFirstButton;
|
|
40
40
|
const promptButtonType = promptCarouselWidgetConfig?.promptButtonType;
|
|
41
41
|
const promptCarouselRows = promptCarouselWidgetConfig?.promptCarouselRows;
|
|
42
|
-
const animationSpeed = isLoading ? __envive_ai_react_toolkit_v3_PromptCarousel_types_types.AnimationSpeed.
|
|
42
|
+
const animationSpeed = isLoading ? __envive_ai_react_toolkit_v3_PromptCarousel_types_types.AnimationSpeed.NONE : promptCarouselWidgetConfig?.animationSpeed;
|
|
43
43
|
const { trackEvent } = (0, __envive_ai_react_hooks_contexts_amplitudeContext.useAmplitude)();
|
|
44
44
|
(0, react.useEffect)(() => {
|
|
45
45
|
trackEvent({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime6 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/PromptCarouselWidget/PromptCarouselWidget.d.ts
|
|
4
4
|
interface PromptCarouselWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface PromptCarouselWidgetProps {
|
|
|
7
7
|
declare const PromptCarouselWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: PromptCarouselWidgetProps):
|
|
10
|
+
}: PromptCarouselWidgetProps): react_jsx_runtime6.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime15 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/PromptCarouselWidget/PromptCarouselWidget.d.ts
|
|
4
4
|
interface PromptCarouselWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface PromptCarouselWidgetProps {
|
|
|
7
7
|
declare const PromptCarouselWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: PromptCarouselWidgetProps):
|
|
10
|
+
}: PromptCarouselWidgetProps): react_jsx_runtime15.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -38,7 +38,7 @@ const PromptCarouselWidgetHandler = (props) => {
|
|
|
38
38
|
const boldFirstButton = promptCarouselWidgetConfig?.boldFirstButton;
|
|
39
39
|
const promptButtonType = promptCarouselWidgetConfig?.promptButtonType;
|
|
40
40
|
const promptCarouselRows = promptCarouselWidgetConfig?.promptCarouselRows;
|
|
41
|
-
const animationSpeed = isLoading ? AnimationSpeed.
|
|
41
|
+
const animationSpeed = isLoading ? AnimationSpeed.NONE : promptCarouselWidgetConfig?.animationSpeed;
|
|
42
42
|
const { trackEvent } = useAmplitude();
|
|
43
43
|
useEffect(() => {
|
|
44
44
|
trackEvent({
|
|
@@ -11,21 +11,21 @@ let __envive_ai_react_toolkit_v3_ChatPreviewLoading = require("@envive-ai/react-
|
|
|
11
11
|
//#region src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.tsx
|
|
12
12
|
const SocialProofFlowWidget = ({ widgetConfigId }) => {
|
|
13
13
|
const { userHasInteractedValue, userHasNotInteractedValue, isLoadingValue, isProductComparisonValue } = require_useGetWidgetStatus.default();
|
|
14
|
-
if (userHasInteractedValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
14
|
+
if (userHasInteractedValue && isLoadingValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatPreviewLoadingWidget.ChatPreviewLoadingWidgetWithBaseWidget, {
|
|
15
15
|
widgetConfigId,
|
|
16
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
16
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.ChatPreviewLoadingV3
|
|
17
17
|
});
|
|
18
|
-
if (
|
|
18
|
+
if (userHasInteractedValue && isProductComparisonValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatPreviewComparisonWidget.ChatPreviewComparisonWidgetWithBaseWidget, {
|
|
19
19
|
widgetConfigId,
|
|
20
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
20
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.ChatPreviewComparisonV3
|
|
21
21
|
});
|
|
22
|
-
if (
|
|
22
|
+
if (userHasInteractedValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatPreviewWidget.ChatPreviewWidgetWithBaseWidget, {
|
|
23
23
|
widgetConfigId,
|
|
24
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
24
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.ChatPreviewV3
|
|
25
25
|
});
|
|
26
|
-
if (
|
|
26
|
+
if (userHasNotInteractedValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SocialProofWidget.SocialProofWidgetWithBaseWidget, {
|
|
27
27
|
widgetConfigId,
|
|
28
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
28
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.SocialProofV3
|
|
29
29
|
});
|
|
30
30
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__envive_ai_react_toolkit_v3_ChatPreviewLoading.ChatPreviewLoading, { fullIsLoading: true });
|
|
31
31
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime3 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.ts
|
|
4
4
|
interface SocialProofFlowWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface SocialProofFlowWidgetProps {
|
|
|
7
7
|
declare const SocialProofFlowWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: SocialProofFlowWidgetProps):
|
|
10
|
+
}: SocialProofFlowWidgetProps): react_jsx_runtime3.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime6 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.ts
|
|
4
4
|
interface SocialProofFlowWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface SocialProofFlowWidgetProps {
|
|
|
7
7
|
declare const SocialProofFlowWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: SocialProofFlowWidgetProps):
|
|
10
|
+
}: SocialProofFlowWidgetProps): react_jsx_runtime6.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -10,21 +10,21 @@ import { ChatPreviewLoading } from "@envive-ai/react-toolkit-v3/ChatPreviewLoadi
|
|
|
10
10
|
//#region src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.tsx
|
|
11
11
|
const SocialProofFlowWidget = ({ widgetConfigId }) => {
|
|
12
12
|
const { userHasInteractedValue, userHasNotInteractedValue, isLoadingValue, isProductComparisonValue } = useGetWidgetStatus_default();
|
|
13
|
-
if (userHasInteractedValue) return /* @__PURE__ */ jsx(
|
|
13
|
+
if (userHasInteractedValue && isLoadingValue) return /* @__PURE__ */ jsx(ChatPreviewLoadingWidgetWithBaseWidget, {
|
|
14
14
|
widgetConfigId,
|
|
15
|
-
widgetType: WidgetTypeV3.
|
|
15
|
+
widgetType: WidgetTypeV3.ChatPreviewLoadingV3
|
|
16
16
|
});
|
|
17
|
-
if (
|
|
17
|
+
if (userHasInteractedValue && isProductComparisonValue) return /* @__PURE__ */ jsx(ChatPreviewComparisonWidgetWithBaseWidget, {
|
|
18
18
|
widgetConfigId,
|
|
19
|
-
widgetType: WidgetTypeV3.
|
|
19
|
+
widgetType: WidgetTypeV3.ChatPreviewComparisonV3
|
|
20
20
|
});
|
|
21
|
-
if (
|
|
21
|
+
if (userHasInteractedValue) return /* @__PURE__ */ jsx(ChatPreviewWidgetWithBaseWidget, {
|
|
22
22
|
widgetConfigId,
|
|
23
|
-
widgetType: WidgetTypeV3.
|
|
23
|
+
widgetType: WidgetTypeV3.ChatPreviewV3
|
|
24
24
|
});
|
|
25
|
-
if (
|
|
25
|
+
if (userHasNotInteractedValue) return /* @__PURE__ */ jsx(SocialProofWidgetWithBaseWidget, {
|
|
26
26
|
widgetConfigId,
|
|
27
|
-
widgetType: WidgetTypeV3.
|
|
27
|
+
widgetType: WidgetTypeV3.SocialProofV3
|
|
28
28
|
});
|
|
29
29
|
return /* @__PURE__ */ jsx(ChatPreviewLoading, { fullIsLoading: true });
|
|
30
30
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BaseWidgetProps } from "../../hocs/withBaseWidget/types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/widgets/SocialProofWidget/SocialProofWidget.d.ts
|
|
5
5
|
declare const SocialProofWidgetWithBaseWidget: {
|
|
6
|
-
(props: BaseWidgetProps):
|
|
6
|
+
(props: BaseWidgetProps): react_jsx_runtime0.JSX.Element;
|
|
7
7
|
displayName: string;
|
|
8
8
|
};
|
|
9
9
|
interface SocialProofWidgetProps {
|
|
@@ -12,7 +12,7 @@ interface SocialProofWidgetProps {
|
|
|
12
12
|
declare const SocialProofWidget: {
|
|
13
13
|
({
|
|
14
14
|
widgetConfigId
|
|
15
|
-
}: SocialProofWidgetProps):
|
|
15
|
+
}: SocialProofWidgetProps): react_jsx_runtime0.JSX.Element;
|
|
16
16
|
displayName: string;
|
|
17
17
|
};
|
|
18
18
|
//#endregion
|
|
@@ -35,7 +35,7 @@ const TitledPromptCarouselWidgetHandler = (props) => {
|
|
|
35
35
|
const boldFirstButton = titledPromptCarouselWidgetConfig?.boldFirstButton;
|
|
36
36
|
const promptButtonType = titledPromptCarouselWidgetConfig?.promptButtonType;
|
|
37
37
|
const promptCarouselRows = titledPromptCarouselWidgetConfig?.promptCarouselRows;
|
|
38
|
-
const animationSpeed = isLoading ? __envive_ai_react_toolkit_v3_PromptCarousel.AnimationSpeed.
|
|
38
|
+
const animationSpeed = isLoading ? __envive_ai_react_toolkit_v3_PromptCarousel.AnimationSpeed.NONE : titledPromptCarouselWidgetConfig?.animationSpeed;
|
|
39
39
|
const { trackEvent } = (0, __envive_ai_react_hooks_contexts_amplitudeContext.useAmplitude)();
|
|
40
40
|
(0, react.useEffect)(() => {
|
|
41
41
|
trackEvent({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime2 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.ts
|
|
4
4
|
interface TitledPromptCarouselWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface TitledPromptCarouselWidgetProps {
|
|
|
7
7
|
declare const TitledPromptCarouselWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: TitledPromptCarouselWidgetProps):
|
|
10
|
+
}: TitledPromptCarouselWidgetProps): react_jsx_runtime2.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.ts
|
|
4
4
|
interface TitledPromptCarouselWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface TitledPromptCarouselWidgetProps {
|
|
|
7
7
|
declare const TitledPromptCarouselWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: TitledPromptCarouselWidgetProps):
|
|
10
|
+
}: TitledPromptCarouselWidgetProps): react_jsx_runtime1.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -34,7 +34,7 @@ const TitledPromptCarouselWidgetHandler = (props) => {
|
|
|
34
34
|
const boldFirstButton = titledPromptCarouselWidgetConfig?.boldFirstButton;
|
|
35
35
|
const promptButtonType = titledPromptCarouselWidgetConfig?.promptButtonType;
|
|
36
36
|
const promptCarouselRows = titledPromptCarouselWidgetConfig?.promptCarouselRows;
|
|
37
|
-
const animationSpeed = isLoading ? AnimationSpeed.
|
|
37
|
+
const animationSpeed = isLoading ? AnimationSpeed.NONE : titledPromptCarouselWidgetConfig?.animationSpeed;
|
|
38
38
|
const { trackEvent } = useAmplitude();
|
|
39
39
|
useEffect(() => {
|
|
40
40
|
trackEvent({
|
|
@@ -11,21 +11,21 @@ let __envive_ai_react_toolkit_v3_ChatPreviewLoading = require("@envive-ai/react-
|
|
|
11
11
|
//#region src/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.tsx
|
|
12
12
|
const TypingAnimationFlowWidget = ({ widgetConfigId }) => {
|
|
13
13
|
const { userHasInteractedValue, userHasNotInteractedValue, isLoadingValue, isProductComparisonValue } = require_useGetWidgetStatus.default();
|
|
14
|
-
if (userHasInteractedValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
14
|
+
if (userHasInteractedValue && isLoadingValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatPreviewLoadingWidget.ChatPreviewLoadingWidgetWithBaseWidget, {
|
|
15
15
|
widgetConfigId,
|
|
16
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
16
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.ChatPreviewLoadingV3
|
|
17
17
|
});
|
|
18
|
-
if (
|
|
18
|
+
if (userHasInteractedValue && isProductComparisonValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatPreviewComparisonWidget.ChatPreviewComparisonWidgetWithBaseWidget, {
|
|
19
19
|
widgetConfigId,
|
|
20
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
20
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.ChatPreviewComparisonV3
|
|
21
21
|
});
|
|
22
|
-
if (
|
|
22
|
+
if (userHasInteractedValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatPreviewWidget.ChatPreviewWidgetWithBaseWidget, {
|
|
23
23
|
widgetConfigId,
|
|
24
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
24
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.ChatPreviewV3
|
|
25
25
|
});
|
|
26
|
-
if (
|
|
26
|
+
if (userHasNotInteractedValue) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TypingAnimationWidget.TypingAnimationWithBaseWidget, {
|
|
27
27
|
widgetConfigId,
|
|
28
|
-
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.
|
|
28
|
+
widgetType: __envive_ai_react_hooks_contexts_typesV3.WidgetTypeV3.TypingAnimationV3
|
|
29
29
|
});
|
|
30
30
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__envive_ai_react_toolkit_v3_ChatPreviewLoading.ChatPreviewLoading, { fullIsLoading: true });
|
|
31
31
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.ts
|
|
4
4
|
interface TypingAnimationFlowWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface TypingAnimationFlowWidgetProps {
|
|
|
7
7
|
declare const TypingAnimationFlowWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: TypingAnimationFlowWidgetProps):
|
|
10
|
+
}: TypingAnimationFlowWidgetProps): react_jsx_runtime1.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime10 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region src/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.ts
|
|
4
4
|
interface TypingAnimationFlowWidgetProps {
|
|
@@ -7,7 +7,7 @@ interface TypingAnimationFlowWidgetProps {
|
|
|
7
7
|
declare const TypingAnimationFlowWidget: {
|
|
8
8
|
({
|
|
9
9
|
widgetConfigId
|
|
10
|
-
}: TypingAnimationFlowWidgetProps):
|
|
10
|
+
}: TypingAnimationFlowWidgetProps): react_jsx_runtime10.JSX.Element;
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
//#endregion
|