vdb-ai-chat 1.0.1 → 1.0.3

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.
Files changed (128) hide show
  1. package/dist/10.chat-widget.js +2 -0
  2. package/dist/10.chat-widget.js.LICENSE.txt +1 -0
  3. package/dist/104.chat-widget.js +1 -0
  4. package/dist/50.chat-widget.js +1 -0
  5. package/dist/521.chat-widget.js +1 -0
  6. package/dist/538.chat-widget.js +1 -1
  7. package/dist/572.chat-widget.js +1 -0
  8. package/dist/694.chat-widget.js +1 -0
  9. package/dist/chat-widget.js +1 -1
  10. package/lib/commonjs/api.js +4 -3
  11. package/lib/commonjs/api.js.map +1 -1
  12. package/lib/commonjs/components/BetaNotice.js +38 -0
  13. package/lib/commonjs/components/BetaNotice.js.map +1 -0
  14. package/lib/commonjs/components/ChatHeader.js +27 -20
  15. package/lib/commonjs/components/ChatHeader.js.map +1 -1
  16. package/lib/commonjs/components/ChatInput.js +20 -21
  17. package/lib/commonjs/components/ChatInput.js.map +1 -1
  18. package/lib/commonjs/components/ChatWidget.js +165 -92
  19. package/lib/commonjs/components/ChatWidget.js.map +1 -1
  20. package/lib/commonjs/components/LazyProductsFetcher.js +47 -0
  21. package/lib/commonjs/components/LazyProductsFetcher.js.map +1 -0
  22. package/lib/commonjs/components/MessageBubble.js +26 -90
  23. package/lib/commonjs/components/MessageBubble.js.map +1 -1
  24. package/lib/commonjs/components/MessageMetaRow.js +113 -0
  25. package/lib/commonjs/components/MessageMetaRow.js.map +1 -0
  26. package/lib/commonjs/components/ProductsGrid.js +139 -0
  27. package/lib/commonjs/components/ProductsGrid.js.map +1 -0
  28. package/lib/commonjs/components/ProductsList.js +22 -126
  29. package/lib/commonjs/components/ProductsList.js.map +1 -1
  30. package/lib/commonjs/components/ProductsListView.js +139 -0
  31. package/lib/commonjs/components/ProductsListView.js.map +1 -0
  32. package/lib/commonjs/components/SuggestionsRow.js +50 -27
  33. package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
  34. package/lib/commonjs/components/utils.js +4 -3
  35. package/lib/commonjs/components/utils.js.map +1 -1
  36. package/lib/commonjs/hooks/useInViewport.js +42 -0
  37. package/lib/commonjs/hooks/useInViewport.js.map +1 -0
  38. package/lib/commonjs/index.web.js +86 -29
  39. package/lib/commonjs/index.web.js.map +1 -1
  40. package/lib/commonjs/theme.js +4 -4
  41. package/lib/commonjs/theme.js.map +1 -1
  42. package/lib/module/api.js +4 -3
  43. package/lib/module/api.js.map +1 -1
  44. package/lib/module/components/BetaNotice.js +30 -0
  45. package/lib/module/components/BetaNotice.js.map +1 -0
  46. package/lib/module/components/ChatHeader.js +27 -20
  47. package/lib/module/components/ChatHeader.js.map +1 -1
  48. package/lib/module/components/ChatInput.js +20 -21
  49. package/lib/module/components/ChatInput.js.map +1 -1
  50. package/lib/module/components/ChatWidget.js +166 -93
  51. package/lib/module/components/ChatWidget.js.map +1 -1
  52. package/lib/module/components/LazyProductsFetcher.js +40 -0
  53. package/lib/module/components/LazyProductsFetcher.js.map +1 -0
  54. package/lib/module/components/MessageBubble.js +26 -92
  55. package/lib/module/components/MessageBubble.js.map +1 -1
  56. package/lib/module/components/MessageMetaRow.js +105 -0
  57. package/lib/module/components/MessageMetaRow.js.map +1 -0
  58. package/lib/module/components/ProductsGrid.js +133 -0
  59. package/lib/module/components/ProductsGrid.js.map +1 -0
  60. package/lib/module/components/ProductsList.js +21 -126
  61. package/lib/module/components/ProductsList.js.map +1 -1
  62. package/lib/module/components/ProductsListView.js +132 -0
  63. package/lib/module/components/ProductsListView.js.map +1 -0
  64. package/lib/module/components/SuggestionsRow.js +51 -28
  65. package/lib/module/components/SuggestionsRow.js.map +1 -1
  66. package/lib/module/components/utils.js +4 -3
  67. package/lib/module/components/utils.js.map +1 -1
  68. package/lib/module/hooks/useInViewport.js +36 -0
  69. package/lib/module/hooks/useInViewport.js.map +1 -0
  70. package/lib/module/index.web.js +86 -29
  71. package/lib/module/index.web.js.map +1 -1
  72. package/lib/module/theme.js +4 -4
  73. package/lib/module/theme.js.map +1 -1
  74. package/lib/typescript/api.d.ts.map +1 -1
  75. package/lib/typescript/components/BetaNotice.d.ts +5 -0
  76. package/lib/typescript/components/BetaNotice.d.ts.map +1 -0
  77. package/lib/typescript/components/ChatHeader.d.ts +5 -2
  78. package/lib/typescript/components/ChatHeader.d.ts.map +1 -1
  79. package/lib/typescript/components/ChatInput.d.ts.map +1 -1
  80. package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
  81. package/lib/typescript/components/LazyProductsFetcher.d.ts +9 -0
  82. package/lib/typescript/components/LazyProductsFetcher.d.ts.map +1 -0
  83. package/lib/typescript/components/MessageBubble.d.ts +7 -3
  84. package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
  85. package/lib/typescript/components/MessageMetaRow.d.ts +14 -0
  86. package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -0
  87. package/lib/typescript/components/ProductsGrid.d.ts +10 -0
  88. package/lib/typescript/components/ProductsGrid.d.ts.map +1 -0
  89. package/lib/typescript/components/ProductsList.d.ts +4 -2
  90. package/lib/typescript/components/ProductsList.d.ts.map +1 -1
  91. package/lib/typescript/components/ProductsListView.d.ts +10 -0
  92. package/lib/typescript/components/ProductsListView.d.ts.map +1 -0
  93. package/lib/typescript/components/SuggestionsRow.d.ts +2 -0
  94. package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
  95. package/lib/typescript/components/utils.d.ts +1 -0
  96. package/lib/typescript/components/utils.d.ts.map +1 -1
  97. package/lib/typescript/hooks/useInViewport.d.ts +5 -0
  98. package/lib/typescript/hooks/useInViewport.d.ts.map +1 -0
  99. package/lib/typescript/index.web.d.ts +1 -1
  100. package/lib/typescript/index.web.d.ts.map +1 -1
  101. package/lib/typescript/types.d.ts +3 -1
  102. package/lib/typescript/types.d.ts.map +1 -1
  103. package/package.json +1 -1
  104. package/src/api.ts +4 -3
  105. package/src/components/BetaNotice.tsx +32 -0
  106. package/src/components/ChatHeader.tsx +32 -18
  107. package/src/components/ChatInput.tsx +23 -21
  108. package/src/components/ChatWidget.tsx +249 -159
  109. package/src/components/LazyProductsFetcher.tsx +41 -0
  110. package/src/components/MessageBubble.tsx +46 -148
  111. package/src/components/MessageMetaRow.tsx +199 -0
  112. package/src/components/ProductsGrid.tsx +163 -0
  113. package/src/components/ProductsList.tsx +20 -146
  114. package/src/components/ProductsListView.tsx +149 -0
  115. package/src/components/SuggestionsRow.tsx +61 -32
  116. package/src/components/utils.ts +6 -4
  117. package/src/hooks/useInViewport.ts +38 -0
  118. package/src/index.web.tsx +87 -32
  119. package/src/theme.ts +4 -4
  120. package/src/types.ts +3 -2
  121. package/dist/751.chat-widget.js +0 -1
  122. package/lib/commonjs/contexts/SegmentClientContext.js +0 -19
  123. package/lib/commonjs/contexts/SegmentClientContext.js.map +0 -1
  124. package/lib/module/contexts/SegmentClientContext.js +0 -10
  125. package/lib/module/contexts/SegmentClientContext.js.map +0 -1
  126. package/lib/typescript/contexts/SegmentClientContext.d.ts +0 -9
  127. package/lib/typescript/contexts/SegmentClientContext.d.ts.map +0 -1
  128. package/src/contexts/SegmentClientContext.tsx +0 -20
@@ -1,18 +1,19 @@
1
1
  import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
2
- import { View, StyleSheet, ScrollView, Text, DeviceEventEmitter, Platform } from "react-native";
2
+ import { View, StyleSheet, ScrollView, Text, KeyboardAvoidingView, DeviceEventEmitter, Platform } from "react-native";
3
3
  import { ChatInput } from "./ChatInput";
4
4
  import { MessageBubble } from "./MessageBubble";
5
+ import MessageMetaRow from "./MessageMetaRow";
5
6
  import { mergeTheme } from "../theme";
6
7
  import { fetchInitialMessages, getProducts, handleFeedbackActionApi, normaliseMessages, sendUserMessage } from "../api";
7
8
  import ChatHeader from "./ChatHeader";
8
- import SuggestionsRow from "./SuggestionsRow";
9
+ import BetaNotice from "./BetaNotice";
9
10
  import ProductsList from "./ProductsList";
11
+ import LazyProductsFetcher from "./LazyProductsFetcher";
10
12
  import { FeedbackAction, formatToTime, getUserDetails } from "./utils";
11
13
  import { useUserAnalytics } from "../hooks/useAnalytics";
12
14
  import { Storage } from "../storage";
13
15
  export const ChatWidget = /*#__PURE__*/forwardRef(({
14
16
  apiUrl,
15
- userId: userIdProp,
16
17
  userToken: userTokenProp,
17
18
  priceMode: priceModeProp,
18
19
  modalHeight,
@@ -22,7 +23,8 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
22
23
  onClose,
23
24
  onClearChat,
24
25
  onViewAllPress,
25
- onItemPress: onItemPressProp
26
+ onItemPress: onItemPressProp,
27
+ isBetaMode: isBetaModeProp
26
28
  }, ref) => {
27
29
  const [messages, setMessages] = useState(initialMessages);
28
30
  const [input, setInput] = useState("");
@@ -31,11 +33,10 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
31
33
  const [typingMessageId, setTypingMessageId] = useState(null);
32
34
  const [typingFullText, setTypingFullText] = useState("");
33
35
  const [assistantResponse, setAssistantResponse] = useState(undefined);
36
+ const [scrollY, setScrollY] = useState(0);
34
37
  const [productsByMsg, setProductsByMsg] = useState({});
35
38
  const [reloadLoadingIds, setReloadLoadingIds] = useState(new Set());
36
39
  const [priceMode, setPriceMode] = useState(priceModeProp || null);
37
- const [conversationId, setConversationId] = useState(null);
38
- const [userId, setUserId] = useState(userIdProp || "");
39
40
  const [userToken, setUserToken] = useState(userTokenProp || "");
40
41
  const scrollRef = useRef(null);
41
42
  const inputRef = useRef(null);
@@ -43,16 +44,11 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
43
44
  const {
44
45
  _identify
45
46
  } = useUserAnalytics();
46
- // Load user auth data from storage on mount
47
+ const betaActive = Boolean(isBetaModeProp);
48
+ const noResultsText = "No results found for your search. Try adjusting your filters or query.";
47
49
  useEffect(() => {
48
50
  const loadAuthData = async () => {
49
51
  try {
50
- if (!userIdProp) {
51
- const userData = await Storage.getJSON("userData", {});
52
- if (userData?.id) {
53
- setUserId(userData.id);
54
- }
55
- }
56
52
  if (!userTokenProp) {
57
53
  const token = await Storage.getItem("token");
58
54
  if (token) {
@@ -64,41 +60,34 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
64
60
  }
65
61
  };
66
62
  loadAuthData();
67
- }, [userIdProp, userTokenProp]);
63
+ }, [userTokenProp]);
68
64
  const onViewAll = useCallback(() => {
69
65
  const searchPayload = JSON.stringify(assistantResponse?.search_payload);
70
66
  const payload = assistantResponse?.search_payload;
71
67
  if (!payload) return;
72
68
  const domain = apiUrl.split("v3");
73
69
  const deepLinkUrl = `${domain[0]}webapp/${payload.lab_grown === "true" ? "lab-grown-diamonds" : "natural-diamonds"}/search?priceMode=${priceMode}&productType=${payload.lab_grown === "true" ? "lab_grown_diamond" : "diamond"}&fromNewFilterScreen=false&filterSplitStep=1&sectionName=Single%20Stones&breadCrumbLabel=Stone%20Search&enterSecondFlow=false&saved_search=${searchPayload}`;
74
-
75
- // If custom handler is provided (React Native), use it
76
70
  if (onViewAllPress) {
77
71
  onViewAllPress(deepLinkUrl, payload);
78
72
  } else if (Platform.OS === "web") {
79
- // Default behavior for web
80
73
  window.open(deepLinkUrl, "_parent");
81
74
  }
82
75
  }, [assistantResponse, apiUrl, priceMode, onViewAllPress]);
83
76
  const onItemPress = useCallback(item => {
84
77
  const domain = apiUrl.split("v3");
85
78
  const deepLinkUrl = `${domain[0]}webapp/${item.type === "lab_grown_diamond" ? "lab-grown-diamonds" : "natural-diamonds"}/item-detail/${item.id}?productType=${item.type}&priceMode=${priceMode}&breadCrumbLabel=Stone%20Details`;
86
-
87
- // If custom handler is provided (React Native), use it
88
79
  if (onItemPressProp) {
89
80
  onItemPressProp(deepLinkUrl, item);
90
81
  } else if (Platform.OS === "web") {
91
- // Default behavior for web
92
82
  window.open(deepLinkUrl, "_parent");
93
83
  }
94
84
  }, [apiUrl, priceMode, onItemPressProp]);
95
- const hasAuth = useMemo(() => Boolean(userId || userToken), [userId, userToken]);
85
+ const hasAuth = useMemo(() => Boolean(userToken), [userToken]);
96
86
  const apiParams = useMemo(() => ({
97
- conversationId: userToken || userId
98
- }), [userId, userToken]);
87
+ conversationId: userToken
88
+ }), [userToken]);
99
89
  const handleFeedbackAction = useCallback(async (action, conversation_id, message_id) => {
100
90
  try {
101
- // Use functional update to get current messages without dependency
102
91
  let currentReaction = "0";
103
92
  setMessages(prev => {
104
93
  const msg = prev.find(m => m.id === message_id);
@@ -119,8 +108,6 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
119
108
  console.error("Feedback API error", e);
120
109
  }
121
110
  }, []);
122
-
123
- // Load initial history on mount
124
111
  useEffect(() => {
125
112
  let cancelled = false;
126
113
  const load = async () => {
@@ -128,7 +115,31 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
128
115
  try {
129
116
  const initial = await fetchInitialMessages(apiUrl, apiParams, priceMode);
130
117
  if (!cancelled) {
131
- setMessages(normaliseMessages(initial).reverse());
118
+ const normalised = normaliseMessages(initial).reverse();
119
+ if (normalised.length === 0) {
120
+ const initialAssistant = {
121
+ id: "",
122
+ role: "assistant",
123
+ text: "Hello! How can I help you today?",
124
+ createdAt: Date.now(),
125
+ isLoading: false,
126
+ suggestions: ["Search Natural Diamonds", "Search Lab-Grown Diamonds"],
127
+ reaction: "0"
128
+ };
129
+ setMessages([initialAssistant]);
130
+ setTimeout(() => {
131
+ scrollRef.current?.scrollToEnd({
132
+ animated: false
133
+ });
134
+ }, 0);
135
+ } else {
136
+ setMessages(normalised);
137
+ setTimeout(() => {
138
+ scrollRef.current?.scrollToEnd({
139
+ animated: false
140
+ });
141
+ }, 0);
142
+ }
132
143
  }
133
144
  } catch (error) {
134
145
  console.error("Failed to fetch initial messages", error);
@@ -156,6 +167,7 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
156
167
  role: "assistant",
157
168
  text: "Thinking",
158
169
  createdAt: Date.now(),
170
+ reaction: "0",
159
171
  isLoading: true
160
172
  };
161
173
  setMessages(prev => [...prev, userMessage, loadingMessage]);
@@ -176,12 +188,10 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
176
188
  const latestAssistant = normalised.find(m => m.role === "assistant");
177
189
  setAssistantResponse(latestAssistant);
178
190
  if (latestAssistant?.text) {
179
- // If there is an agent_response, try to fetch products first
180
191
  if (latestAssistant?.search_payload && typeof latestAssistant.search_payload === "object" && Object.keys(latestAssistant.search_payload).length > 0) {
181
192
  const productsResult = await getProducts(latestAssistant.search_payload);
182
193
  const hasDiamonds = productsResult && productsResult.response && productsResult.response.body && Array.isArray(productsResult.response.body.diamonds) && productsResult.response.body.diamonds.length > 0;
183
194
  if (!hasDiamonds) {
184
- const noResultsText = "No results found for your search. Try adjusting your filters or query.";
185
195
  setLoadingMessageId(null);
186
196
  setTypingMessageId(null);
187
197
  setTypingFullText("");
@@ -189,16 +199,15 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
189
199
  ...msg,
190
200
  id: latestAssistant?.id ?? msg.id,
191
201
  text: noResultsText,
192
- isLoading: false,
193
- suggestions: []
202
+ isLoading: false
194
203
  } : msg));
195
204
  inputRef.current?.focus();
196
205
  return;
197
206
  }
198
- setProductsByMsg({
199
- messageId: latestAssistant.id,
200
- data: productsResult
201
- });
207
+ setProductsByMsg(prev => ({
208
+ ...prev,
209
+ [latestAssistant.id]: productsResult
210
+ }));
202
211
  }
203
212
  setLoadingMessageId(null);
204
213
  setMessages(prev => prev.map(msg => msg.id === loadingId ? {
@@ -208,11 +217,12 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
208
217
  isLoading: false,
209
218
  suggestions: latestAssistant.suggestions
210
219
  } : msg));
211
-
212
- // Use setTimeout to ensure state is updated before starting typewriter
213
220
  setTimeout(() => {
214
221
  setTypingMessageId(latestAssistant.id);
215
222
  setTypingFullText(latestAssistant.text);
223
+ scrollRef.current?.scrollToEnd({
224
+ animated: true
225
+ });
216
226
  }, 50);
217
227
  } else {
218
228
  setMessages(prev => prev.map(msg => msg.id === loadingId ? {
@@ -276,7 +286,7 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
276
286
  useEffect(() => {
277
287
  DeviceEventEmitter.addListener("clearChat", handleClearChat);
278
288
  DeviceEventEmitter.addListener("changePriceMode", data => changePriceMode(data.priceMode));
279
- changePriceMode(undefined);
289
+ changePriceMode();
280
290
  identifySegmentUser();
281
291
  return () => {
282
292
  DeviceEventEmitter.removeAllListeners("clearChat");
@@ -284,37 +294,24 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
284
294
  };
285
295
  }, []);
286
296
  const changePriceMode = async _priceMode => {
287
- // Priority: passed argument > prop > storage
288
297
  if (!_priceMode && priceModeProp) {
289
298
  _priceMode = priceModeProp;
290
299
  }
291
300
  if (!_priceMode) {
292
- const userData = await Storage.getJSON("userData", {});
301
+ let userData = await Storage.getJSON("persist:userInfo", {
302
+ user: undefined
303
+ });
304
+ userData = userData && userData.user ? JSON.parse(userData.user) : {};
293
305
  _priceMode = userData?.price_mode;
294
306
  }
295
- setPriceMode(_priceMode || null);
307
+ setPriceMode(_priceMode === undefined ? null : String(_priceMode));
296
308
  };
297
-
298
- // Update conversationId when priceMode changes
299
- useEffect(() => {
300
- const loadConversationId = async () => {
301
- if (!priceMode) {
302
- setConversationId(null);
303
- return;
304
- }
305
- const conversations = await Storage.getJSON("vdbchat_conversations", {});
306
- const storedId = conversations?.[priceMode]?.conversation_id ?? null;
307
- setConversationId(storedId ? String(storedId) : null);
308
- };
309
- loadConversationId();
310
- }, [priceMode, messages]); // Re-fetch when messages change (new conversation might be created)
311
-
312
309
  const handleClearChat = useCallback(async () => {
313
310
  try {
314
311
  const conversations = await Storage.getJSON("vdbchat_conversations", {});
315
- const storedId = conversations?.[priceMode]?.conversation_id ?? null;
312
+ const storedId = conversations ? conversations[priceMode]?.conversation_id : null;
316
313
  if (storedId && priceMode) {
317
- const updatedConversations = conversations || {};
314
+ const updatedConversations = conversations ?? {};
318
315
  delete updatedConversations[priceMode];
319
316
  await Storage.setJSON("vdbchat_conversations", updatedConversations);
320
317
  }
@@ -327,30 +324,39 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
327
324
  setTypingMessageId(null);
328
325
  setTypingFullText("");
329
326
  const fresh = await fetchInitialMessages(apiUrl, undefined, priceMode);
330
- setMessages(normaliseMessages(fresh).reverse());
327
+ const normalised = normaliseMessages(fresh).reverse();
328
+ if (normalised.length === 0) {
329
+ const initialAssistant = {
330
+ id: "",
331
+ role: "assistant",
332
+ text: "Hello! How can I help you today?",
333
+ createdAt: Date.now(),
334
+ isLoading: false,
335
+ suggestions: ["Search Natural Diamonds", "Search Lab-Grown Diamonds"],
336
+ reaction: "0"
337
+ };
338
+ setMessages([initialAssistant]);
339
+ } else {
340
+ setMessages(normalised);
341
+ }
342
+ setTimeout(() => {
343
+ scrollRef.current?.scrollToEnd({
344
+ animated: false
345
+ });
346
+ }, 500);
331
347
  onClearChat?.();
332
348
  } catch (err) {
333
349
  console.error("Failed to clear chat", err);
334
350
  }
335
- }, [apiUrl, onClearChat, priceMode]);
336
-
337
- // Expose clearChat method via ref for external use (React Native)
338
- useImperativeHandle(ref, () => ({
339
- clearChat: handleClearChat
340
- }), [handleClearChat]);
341
-
342
- // "Thinking..." dot animation while waiting for the API
351
+ }, [apiUrl, priceMode]);
343
352
  useEffect(() => {
344
- if (!loadingMessageId || typingMessageId) {
345
- return;
346
- }
353
+ if (!loadingMessageId || typingMessageId) return;
347
354
  let step = 0;
348
355
  const base = "Thinking";
349
- const msgId = loadingMessageId;
350
356
  const interval = setInterval(() => {
351
357
  step = (step + 1) % 3;
352
358
  const dots = ".".repeat(step + 1);
353
- setMessages(prev => prev.map(msg => msg.id === msgId && msg.isLoading ? {
359
+ setMessages(prev => prev.map(msg => msg.id === loadingMessageId && msg.isLoading ? {
354
360
  ...msg,
355
361
  text: `${base}${dots}`
356
362
  } : msg));
@@ -359,8 +365,9 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
359
365
  clearInterval(interval);
360
366
  };
361
367
  }, [loadingMessageId, typingMessageId]);
362
-
363
- // Typewriter-style animation for assistant reply once it arrives
368
+ useImperativeHandle(ref, () => ({
369
+ clearChat: handleClearChat
370
+ }), [handleClearChat]);
364
371
  const typingIndexRef = useRef(0);
365
372
  useEffect(() => {
366
373
  if (!typingMessageId || !typingFullText) {
@@ -399,17 +406,27 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
399
406
  }]
400
407
  }, Platform.OS === "web" && /*#__PURE__*/React.createElement(ChatHeader, {
401
408
  onClose: onClose,
402
- onClearChat: handleClearChat
403
- }), /*#__PURE__*/React.createElement(ScrollView, {
409
+ onClearChat: handleClearChat,
410
+ isBetaMode: betaActive
411
+ }), /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
412
+ style: {
413
+ flex: 1
414
+ },
415
+ behavior: Platform.OS === "ios" ? "padding" : "height",
416
+ keyboardVerticalOffset: Platform.OS === "ios" ? 100 : -16
417
+ }, /*#__PURE__*/React.createElement(ScrollView, {
404
418
  ref: scrollRef,
419
+ keyboardShouldPersistTaps: "handled",
420
+ onScroll: e => setScrollY(e.nativeEvent.contentOffset.y),
421
+ scrollEventThrottle: 16,
405
422
  style: modalHeight ? {
406
423
  height: modalHeight,
407
- backgroundColor: "#f5f5f5"
424
+ backgroundColor: "#FFFFFF"
408
425
  } : {
409
- backgroundColor: "#f5f5f5"
426
+ backgroundColor: "#FFFFFF"
410
427
  },
411
428
  contentContainerStyle: {
412
- backgroundColor: theme?.listContentBackgroundColor || "#f5f5f5",
429
+ backgroundColor: theme?.listContentBackgroundColor || "#FFFFFF",
413
430
  ...styles.listContent,
414
431
  justifyContent: messages.length === 0 ? "center" : "flex-end",
415
432
  minHeight: modalHeight ? modalHeight : undefined
@@ -427,26 +444,69 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
427
444
  const ordered = [...messages];
428
445
  return ordered.map((item, index) => {
429
446
  const isLatest = index === ordered.length - 1;
447
+ const hasDiamonds = Boolean(productsByMsg[item.id]?.response?.body?.diamonds && productsByMsg[item.id]?.response?.body?.diamonds.length > 0);
430
448
  return /*#__PURE__*/React.createElement(View, {
431
- key: item.id + index
449
+ key: item.id + index,
450
+ style: {
451
+ gap: 12
452
+ }
432
453
  }, /*#__PURE__*/React.createElement(MessageBubble, {
433
454
  message: item,
434
455
  theme: theme,
435
- conversationId: conversationId,
456
+ priceMode: priceMode,
436
457
  handleFeedbackAction: handleFeedbackAction,
437
458
  onReloadResults: handleReloadResults,
438
459
  reloading: reloadLoadingIds.has(item.id),
439
- hasResults: Boolean(productsByMsg[item.id]?.response?.body?.diamonds && productsByMsg[item.id].response.body.diamonds.length > 0)
440
- }), item.role === "assistant" && productsByMsg && productsByMsg.messageId === item.id && /*#__PURE__*/React.createElement(ProductsList, {
441
- data: productsByMsg?.data?.response?.body?.diamonds,
460
+ hasResults: hasDiamonds,
461
+ totalResults: productsByMsg[item.id]?.response?.header?.total_diamonds_found || 0,
462
+ shownResults: productsByMsg[item.id]?.response?.body?.diamonds.length || 0,
463
+ onSuggestionSelect: handleSuggestionSelect,
464
+ isLatest: isLatest,
465
+ isTyping: typingMessageId === item.id
466
+ }), item.role === "assistant" && item.search_payload && Object.keys(item.search_payload).length > 0 && !productsByMsg[item.id] && /*#__PURE__*/React.createElement(LazyProductsFetcher, {
467
+ messageId: item.id,
468
+ payload: item.search_payload,
469
+ onFetched: (id, result) => {
470
+ setProductsByMsg(prev => ({
471
+ ...prev,
472
+ [id]: result
473
+ }));
474
+ const diamonds = result?.response?.body?.diamonds;
475
+ const hasAny = Array.isArray(diamonds) && diamonds.length > 0;
476
+ if (hasAny) {
477
+ try {
478
+ scrollRef.current?.scrollTo({
479
+ x: 0,
480
+ y: scrollY + 120,
481
+ animated: true
482
+ });
483
+ } catch (_) {}
484
+ } else {
485
+ setMessages(prev => prev.map(msg => msg.id === id ? {
486
+ ...msg,
487
+ id: msg.id,
488
+ text: noResultsText,
489
+ isLoading: false
490
+ } : msg));
491
+ }
492
+ }
493
+ }), item.role === "assistant" && hasDiamonds && /*#__PURE__*/React.createElement(ProductsList, {
494
+ data: productsByMsg[item.id]?.response?.body?.diamonds || [],
495
+ totalResults: productsByMsg[item.id]?.response?.header?.total_diamonds_found || 0,
442
496
  onViewAll: onViewAll,
443
497
  onItemPress: onItemPress
444
- }), item.role === "assistant" && item.suggestions && item.suggestions.length > 0 && isLatest && /*#__PURE__*/React.createElement(SuggestionsRow, {
445
- suggestions: item.suggestions || [],
446
- onSelect: handleSuggestionSelect
498
+ }), /*#__PURE__*/React.createElement(MessageMetaRow, {
499
+ message: item,
500
+ priceMode: priceMode || "",
501
+ handleFeedbackAction: handleFeedbackAction,
502
+ onReloadResults: handleReloadResults,
503
+ reloading: reloadLoadingIds.has(item.id),
504
+ hasResults: hasDiamonds
447
505
  }));
448
506
  });
449
- })()), /*#__PURE__*/React.createElement(ChatInput, {
507
+ })()), /*#__PURE__*/React.createElement(View, {
508
+ style: styles.bottomContainer
509
+ }, /*#__PURE__*/React.createElement(ChatInput, {
450
510
  value: input,
451
511
  onChangeText: setInput,
452
512
  onSend: handleSend,
@@ -454,7 +514,9 @@ export const ChatWidget = /*#__PURE__*/forwardRef(({
454
514
  placeholder: placeholder,
455
515
  theme: theme,
456
516
  inputRef: inputRef
457
- }));
517
+ }), /*#__PURE__*/React.createElement(BetaNotice, {
518
+ active: betaActive
519
+ }))));
458
520
  });
459
521
  ChatWidget.displayName = "ChatWidget";
460
522
  const styles = StyleSheet.create({
@@ -475,12 +537,23 @@ const styles = StyleSheet.create({
475
537
  padding: 16,
476
538
  alignItems: "center",
477
539
  justifyContent: "center",
478
- backgroundColor: "#f5f5f5"
540
+ backgroundColor: "#FFFFFF"
479
541
  },
480
542
  emptyText: {
481
- fontSize: 14,
482
- fontWeight: "500",
483
- color: "#666666"
543
+ fontSize: 13,
544
+ fontWeight: "400",
545
+ color: "#4F4E57"
546
+ },
547
+ bottomContainer: {
548
+ paddingVertical: 12,
549
+ paddingHorizontal: 16,
550
+ borderTopColor: "#E0E0E0",
551
+ borderTopWidth: 1,
552
+ flexDirection: "column",
553
+ justifyContent: "space-between",
554
+ alignItems: "center",
555
+ alignSelf: "stretch",
556
+ gap: 12
484
557
  }
485
558
  });
486
559
  //# sourceMappingURL=ChatWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","View","StyleSheet","ScrollView","Text","DeviceEventEmitter","Platform","ChatInput","MessageBubble","mergeTheme","fetchInitialMessages","getProducts","handleFeedbackActionApi","normaliseMessages","sendUserMessage","ChatHeader","SuggestionsRow","ProductsList","FeedbackAction","formatToTime","getUserDetails","useUserAnalytics","Storage","ChatWidget","apiUrl","userId","userIdProp","userToken","userTokenProp","priceMode","priceModeProp","modalHeight","theme","themeOverrides","initialMessages","placeholder","onClose","onClearChat","onViewAllPress","onItemPress","onItemPressProp","ref","messages","setMessages","input","setInput","loading","setLoading","loadingMessageId","setLoadingMessageId","typingMessageId","setTypingMessageId","typingFullText","setTypingFullText","assistantResponse","setAssistantResponse","undefined","productsByMsg","setProductsByMsg","reloadLoadingIds","setReloadLoadingIds","Set","setPriceMode","conversationId","setConversationId","setUserId","setUserToken","scrollRef","inputRef","_identify","loadAuthData","userData","getJSON","id","token","getItem","e","console","error","onViewAll","searchPayload","JSON","stringify","search_payload","payload","domain","split","deepLinkUrl","lab_grown","OS","window","open","item","type","hasAuth","Boolean","apiParams","handleFeedbackAction","action","conversation_id","message_id","currentReaction","prev","msg","find","m","reaction","nextAction","UNSET","res","ok","map","status","cancelled","load","initial","reverse","length","sendMessage","rawText","trimmed","trim","userMessage","Date","now","role","text","createdAt","loadingId","loadingMessage","isLoading","historyForApi","updatedMessages","normalised","latestAssistant","Object","keys","productsResult","hasDiamonds","response","body","Array","isArray","diamonds","noResultsText","suggestions","current","focus","messageId","data","setTimeout","err","identifySegmentUser","user","email","then","handleSend","handleSuggestionSelect","value","handleReloadResults","add","next","delete","addListener","handleClearChat","changePriceMode","removeAllListeners","_priceMode","price_mode","loadConversationId","conversations","storedId","String","updatedConversations","setJSON","fresh","clearChat","step","base","msgId","interval","setInterval","dots","repeat","clearInterval","typingIndexRef","total","finalMsgId","fullText","currentIndex","slice","createElement","style","styles","container","backgroundColor","height","contentContainerStyle","listContentBackgroundColor","listContent","justifyContent","minHeight","onContentSizeChange","scrollToEnd","animated","emptyContainer","emptyText","ordered","index","isLatest","key","message","onReloadResults","reloading","has","hasResults","onSelect","onChangeText","onSend","disabled","displayName","create","flex","width","paddingVertical","flexGrow","alignItems","padding","fontSize","fontWeight","color"],"sourceRoot":"../../../src","sources":["components/ChatWidget.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","View","StyleSheet","ScrollView","Text","KeyboardAvoidingView","DeviceEventEmitter","Platform","ChatInput","MessageBubble","MessageMetaRow","mergeTheme","fetchInitialMessages","getProducts","handleFeedbackActionApi","normaliseMessages","sendUserMessage","ChatHeader","BetaNotice","ProductsList","LazyProductsFetcher","FeedbackAction","formatToTime","getUserDetails","useUserAnalytics","Storage","ChatWidget","apiUrl","userToken","userTokenProp","priceMode","priceModeProp","modalHeight","theme","themeOverrides","initialMessages","placeholder","onClose","onClearChat","onViewAllPress","onItemPress","onItemPressProp","isBetaMode","isBetaModeProp","ref","messages","setMessages","input","setInput","loading","setLoading","loadingMessageId","setLoadingMessageId","typingMessageId","setTypingMessageId","typingFullText","setTypingFullText","assistantResponse","setAssistantResponse","undefined","scrollY","setScrollY","productsByMsg","setProductsByMsg","reloadLoadingIds","setReloadLoadingIds","Set","setPriceMode","setUserToken","scrollRef","inputRef","_identify","betaActive","Boolean","noResultsText","loadAuthData","token","getItem","e","console","error","onViewAll","searchPayload","JSON","stringify","search_payload","payload","domain","split","deepLinkUrl","lab_grown","OS","window","open","item","type","id","hasAuth","apiParams","conversationId","handleFeedbackAction","action","conversation_id","message_id","currentReaction","prev","msg","find","m","reaction","nextAction","UNSET","res","ok","map","status","cancelled","load","initial","normalised","reverse","length","initialAssistant","role","text","createdAt","Date","now","isLoading","suggestions","setTimeout","current","scrollToEnd","animated","sendMessage","rawText","trimmed","trim","userMessage","loadingId","loadingMessage","historyForApi","updatedMessages","latestAssistant","Object","keys","productsResult","hasDiamonds","response","body","Array","isArray","diamonds","focus","err","identifySegmentUser","user","userId","email","then","handleSend","handleSuggestionSelect","value","handleReloadResults","add","next","delete","addListener","handleClearChat","data","changePriceMode","removeAllListeners","_priceMode","userData","getJSON","parse","price_mode","String","conversations","storedId","updatedConversations","setJSON","fresh","step","base","interval","setInterval","dots","repeat","clearInterval","clearChat","typingIndexRef","total","finalMsgId","fullText","currentIndex","slice","createElement","style","styles","container","backgroundColor","flex","behavior","keyboardVerticalOffset","keyboardShouldPersistTaps","onScroll","nativeEvent","contentOffset","y","scrollEventThrottle","height","contentContainerStyle","listContentBackgroundColor","listContent","justifyContent","minHeight","onContentSizeChange","emptyContainer","emptyText","ordered","index","isLatest","key","gap","message","onReloadResults","reloading","has","hasResults","totalResults","header","total_diamonds_found","shownResults","onSuggestionSelect","isTyping","messageId","onFetched","result","hasAny","scrollTo","x","_","bottomContainer","onChangeText","onSend","disabled","active","displayName","create","width","paddingVertical","flexGrow","alignItems","padding","fontSize","fontWeight","color","paddingHorizontal","borderTopColor","borderTopWidth","flexDirection","alignSelf"],"sourceRoot":"../../../src","sources":["components/ChatWidget.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import React, { useEffect, useRef } from "react";
2
+ import { View } from "react-native";
3
+ import { getProducts } from "../api";
4
+ import { useInViewport } from "../hooks/useInViewport";
5
+ const LazyProductsFetcher = ({
6
+ messageId,
7
+ payload,
8
+ onFetched
9
+ }) => {
10
+ const {
11
+ ref,
12
+ inView
13
+ } = useInViewport();
14
+ const fetchedRef = useRef(false);
15
+ useEffect(() => {
16
+ if (fetchedRef.current) return;
17
+ if (!payload || typeof payload !== "object") return;
18
+ if (!inView) return;
19
+ fetchedRef.current = true;
20
+ (async () => {
21
+ try {
22
+ const result = await getProducts(payload);
23
+ onFetched(messageId, result);
24
+ } catch (e) {
25
+ // eslint-disable-next-line no-console
26
+ console.error("Lazy fetch products failed", e);
27
+ }
28
+ })();
29
+ }, [inView, messageId, onFetched, payload]);
30
+
31
+ // Sentinel element; no visible UI needed
32
+ return /*#__PURE__*/React.createElement(View, {
33
+ ref: ref,
34
+ style: {
35
+ height: 1
36
+ }
37
+ });
38
+ };
39
+ export default LazyProductsFetcher;
40
+ //# sourceMappingURL=LazyProductsFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","View","getProducts","useInViewport","LazyProductsFetcher","messageId","payload","onFetched","ref","inView","fetchedRef","current","result","e","console","error","createElement","style","height"],"sourceRoot":"../../../src","sources":["components/LazyProductsFetcher.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,WAAW,QAAQ,QAAQ;AACpC,SAASC,aAAa,QAAQ,wBAAwB;AAQtD,MAAMC,mBAAuD,GAAGA,CAAC;EAC/DC,SAAS;EACTC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC,GAAG;IAAEC;EAAO,CAAC,GAAGN,aAAa,CAAiB,CAAC;EACvD,MAAMO,UAAU,GAAGV,MAAM,CAAC,KAAK,CAAC;EAEhCD,SAAS,CAAC,MAAM;IACd,IAAIW,UAAU,CAACC,OAAO,EAAE;IACxB,IAAI,CAACL,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC7C,IAAI,CAACG,MAAM,EAAE;IAEbC,UAAU,CAACC,OAAO,GAAG,IAAI;IACzB,CAAC,YAAY;MACX,IAAI;QACF,MAAMC,MAAM,GAAG,MAAMV,WAAW,CAACI,OAAO,CAAC;QACzCC,SAAS,CAACF,SAAS,EAAEO,MAAM,CAAC;MAC9B,CAAC,CAAC,OAAOC,CAAC,EAAE;QACV;QACAC,OAAO,CAACC,KAAK,CAAC,4BAA4B,EAAEF,CAAC,CAAC;MAChD;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACJ,MAAM,EAAEJ,SAAS,EAAEE,SAAS,EAAED,OAAO,CAAC,CAAC;;EAE3C;EACA,oBAAOR,KAAA,CAAAkB,aAAA,CAACf,IAAI;IAACO,GAAG,EAAEA,GAAW;IAACS,KAAK,EAAE;MAAEC,MAAM,EAAE;IAAE;EAAE,CAAE,CAAC;AACxD,CAAC;AAED,eAAed,mBAAmB","ignoreList":[]}